백준16 [백준 1620번] 나는야 포켓몬 마스터 이다솜 # 전직 포켓몬 마스터로서 문제의 제목을 보자마자 참을 수 없었다. 하지만 포켓몬 마스터의 길은 멀고도 험했다... -- 처음 짠 코드 import sys N, M = map(int, input().split()) # 도감에 수록되어있는 포켓몬의 개수 N, 맞춰야 하는 문제의 개수 M dogam = {} for i in range(N): dogam[i+1] = sys.stdin.readline().strip() question = [] for i in range(M): question.append(sys.stdin.readline().strip()) for i in range(len(question)): # 숫자의 string형과 일반 string이 섞여있을 때 이를 판단 ( 예외 처리 ) try: qu.. 2022. 1. 13. [백준 1018번] 체스판 다시 칠하기 # 사실 이 문제는 20일정도 전에 먼저 시도해보았던 문제이다. 하지만 그 때는 접근 방법을 정확히 파악하지 못해서 ( 너무 어렵게 생각했던것 같다 ) 예외가 많은 코드를 짜서 제출했던것 같다. 이 문제를 풀 때 처음 생각했던 것은, 주어진 보드는 무조건 8x8보다 크기 때문에 8x8 사이즈의 직사각형을 움직여가며 바꿔야 하는 횟수를 count, 가장 적은 횟수를 출력하면 되겠구나..! 하는 아이디어였다. 물론 코드 또한 그렇게 만들었다. -- 내가 짠 코드 import sys N, M = map(int, sys.stdin.readline().split()) # N * M 크기의 보드 board = [] for _ in range(N): # sys.stdin.readline()은 개행문자를 받기때문에 s.. 2022. 1. 10. [백준 2805번] 나무 자르기 - 이분탐색 예제 # 오늘은 오후 약속이 있어 한문제만 딱 풀고 나가려했는데.. 처음 짠 코드는 항상 정답이 아니다.. -- 처음 짠 코드 # 필요한 나무 m미터 # 절단기에 지정할 높이 H 의 최댓값을 구하기 N, M = map(int, input().split()) tree = list(map(int, input().split())) height = 0 # 절단기에 설정할 높이 while True: tree_check = 0 # 반복때마다 가져갈 수 있는 나무의 양 체크 for i in range(N): if tree[i]-height>0: tree_check += (tree[i]-height) else: continue # 설정한 높이보다 주어진 나무가 낮다면 0 if tree_check < M: break else.. 2022. 1. 8. [백준 1966번] 프린터 큐 - 큰 수부터 출력하여라 -- 처음 짠 코드 import sys T = int(sys.stdin.readline()) # 테스트케이스의 수 for _ in range(T): n, m = map(int, sys.stdin.readline().split()) # 문서의 개수, 알고싶은 문서의 현재 위치 important = list(map(int, sys.stdin.readline().strip().split())) answer_list = [] while len(answer_list) 인덱스가 -2일때 n-2로 바꾸는게 잘못되어 m의 값이 잘못되게된다. => n-2를 len(important) -1로 수정 , 하지만 아직 오류 1은 해결되지 않음 -> 프린트를 해 answer_list를 갈때와 그냥 순서를 뒤로 보낼때 구하려는 인.. 2022. 1. 5. [백준 10989번] 수 정렬하기 3 - sort X 당연하게도 sort를 사용하면 메모리를 많이 먹는다는걸 모르고 문제 풀이를 시작했기 때문에 list에 입력받아 sort를 해 출력하는 코드를 먼저 짰다. ( 짜면서 이건 너무 쉬운데?? 라는 생각은 당연히 들었고... 답도 당연히 아닐것 같긴 했다.. ) 채점 결과 역시 틀리게 되었고 구글링 결과 생각한대로 sort가 메모리를 많이 잡아먹는것이 문제였다. -- 내가 짠 코드 # sort 사용시 메모리가 초과된다 import sys n = int(sys.stdin.readline()) a = [0] * 10000 # 10000보다 작은 수 for i in range(n): a[int(sys.stdin.readline())-1] +=1 for i in range(len(a)): if a[i] > 0: for.. 2022. 1. 4. [백준 2775번] 부녀회장이 될테야 생각보다 코드를 짜는데 시간이 걸렸던 문제였다. 과거 java로 풀었었던 문제와 비슷하다고 생각해 하나의 리스트를 두고 누적해서 바꿔주면 되겠다고 생각했는데 반복문을 중첩해서 사용하다보니 머리에 무리가 간듯하다. - 제출 코드 T = int(input()) k = [] n = [] floor = [] for i in range(T): k.append(int(input())) n.append(int(input())) floor.append([j for j in range(1,n[i]+1)]) # 0층 리스트 for i in range(T): for _ in range(k[i]): for j in range(len(floor[i])): if j==0: floor[i][j] = 1 else: floor[i][.. 2022. 1. 2. 이전 1 2 3 다음