본문 바로가기

코딩 테스트

(65)
[백준 10951번 파이썬] A + B - 4 바로 전 문제와 매우 흡사하지만 훨씬 간단하다 0 0을 입력받았을 때 끝난다는 조건 없이 무한 반복하는 코드를 작성하면 된다 while True: try: A, B = map(int, input().split()) print(A+B) except: break try를 사용하지 않는 무한 반복하는 코드를 작성하게 되면 런타임 오류를 마주하게 되는데 그 이유는 이 문제를 채점할 때 두 수를 정갈하게 입력하는 테스트 입력값만 넣는 것이 아니기 때문이다 즉, '숫자 숫자' 형식이 아닌 다른 형식이 들어올 것을 대비해 try를 사용해 오류가 발생하면 알아서 반복문을 종료해주게 코딩해주면 정답을 맞힐 수 있게 된다
[백준 10952번 파이썬] A + B - 5 이전에 각 케이스마다 두 수를 합한 값을 출력해줬던 문제와 매우 흡사하다 다른 부분은 입력 받을 케이스의 수를 따로 정하지 않는다는 점이 있다 while 1: A, B = map(int, input().split()) if A == 0 and B == 0: break print(A+B) 입력받을 케이스의 수를 분명하게 정하지 않는 코드이기 때문에 while 문을 이용해 케이스 입력의 종료를 알리는 0 0이 들어올 때까지 출력을 반복한다 여기에서 break는 반복문의 종료를 의미한다
[백준 10871번 파이썬] X보다 작은 수 첫번째 줄에서 입력받을 수의 크기와 기준이 될 숫자가 같이 들어온다 그리고 첫번째 줄에 입력한 만큼의 수를 받고 그 수 중 기준이 될 숫자보다 작은 숫자들을 출력해주면 되는 문제이다 A, B = map(int, input().split()) L = list(map(int, input().split())) for i in range(A): if L[i] < B: print(L[i]) for문으로 L이라는 입력받은 숫자들의 정렬을 확인한다 입력받은 기준 숫자보다 작으면 바로 프린트하면 되는 문제이다 여기에서 결과값은 띄어쓰기로 분류해야 한다고 돼 있는데, print 함수를 쓰면 알아서 공백을 사이에 두고 출력된다
[백준 2439번 파이썬] 별 찍기 - 2 이전 문제와 거의 동일하지만 출력했을 때 나무가 오른쪽 정렬이 돼있어야 한다 num = int(input()) for i in range(1, num+1): print(" "*(num-i)+"*"*i) 왼쪽 정렬의 나무를 만들었을 때 코드 그래도 유지하지만 이번에는 별 앞에 공백을 추가해줘야 한다 만약 입력한 수가 n이라면 나무는 n의 높이를 가지고, 마지막 줄에는 n개의 별을 가지고 있어야 하는데 그 특성을 이용해 별은 1부터 n까지 늘리고 공백은 n-1부터 0까지 내리면 된다
[백준 2438번 파이썬] 별 찍기 - 1 입력 받은 수 길이만큼의 별 나무를 출력하면 되는 문제다 별은 줄을 넘어갈수록 하나씩 늘어나게 출력해주면 된다 num = int(input()) for i in range(1, num+1): print('*'*i) for문을 이용하여 n번째 줄에는 n개의 별을 출력하게 해주기만 하면 된다
[백준 11022번 파이썬] A+B-8 이전 문제와 굉장히 유사한 패턴을 가지고 있는 문제이다 달라진 부분은 출력에서 정답 부분뿐만 아니라 수식까지 출력해줘야 한다는 것이다 num = int(input()) for i in range(1, num+1): A, B = map(int, input().split()) print(f'Case #{i}: {A} + {B} = {A+B}') 이전 문제 코드처럼 f''를 사용해서 수식의 모양을 만들어주고 {} 중괄호 안에 변수 이름을 넣어주면 된다
[백준 11021번 파이썬] A+B-7 예전에 했던 문제 중에서 테스트 개수를 입력 받고 합한 값을 출력할 두 수를 연속으로 받는 그 문제에서 case 출력 부분만 추가된 내용이다 num = int(input()) for i in range(1, num+1): A, B = map(int, input().split()) print(f'Case #{i}: {A+B}') A, B에 map 함수로 수를 받는 건 그대로지만 print 부분에서 case # 뒤로 나오는 수도 반복적이어야 하기 때문에 f''를 이용해서 문자열에 계속 변경되는 부분을 쉽게 집어넣을 수 있게 할 수 있다
[백준 2742번 파이썬] 기찍 N 이전에 했던 문제에서 출력값만 반대로 해주면 된다 import sys num = int(sys.stdin.readline()) for i in range(1, num+1): print(num+1-i) 여기에서 두 가지 방식으로 코드를 짤 수 있는데 내가 짠 것처럼 for문은 그대로 가되 출력값에서 입력값+1을 i로 빼는 수로 변경해주면 된다 아니면 for문 자체에서 거꾸로 카운트 할 수 있는 -1 요소를 for문 안에 넣으면 된다