알고리즘 (7) 썸네일형 리스트형 백준 1018번 체스판 다시 칠하기 (Python) 출처 백준 1018번 체스판 다시 칠하기 정답 import sys board_size = 8 b_board = [] w_board = [] for i in range(board_size): for j in range(board_size): if i % 2 == 0 and j % 2 == 0: b_board.append("B") w_board.append("W") elif i % 2 == 0 and j % 2: b_board.append("W") w_board.append("B") elif i % 2 and j % 2 == 0: b_board.append("W") w_board.append("B") else: #i % 2 == 0 and j % 2: b_board.append("B") w_board.app.. 백준 10798번 세로읽기 (Python) 출처 백준 10798 세로읽기 정답 import sys words = [] for i in range(5): word = sys.stdin.readline().rstrip() words.append(word) for i in range(15): for j in range(5): if i < len(words[j]): print(words[j][i], end="") simplefied soultion for understanding import sys words = [["*" for i in range(15)] for j in range(5)] for i in range(5): word = sys.stdin.readline().rstrip() for j in range(len(word)): words[i].. 백준 4673번 셀프 넘버 (Python) 출처 백준 4673 셀프 넘버 정답 N = 10000 candidates = set([i for i in range(1, N + 1)]) generated_numbers = set() for i in range(N): for s in str(i): i += int(s) generated_numbers.add(i) self_numbers = candidates - generated_numbers for i in sorted(self_numbers): print(i) 문제 입출력 풀이 0. 전략 생성자 (제너레이터) 정의 코드업 1615번 셀프 넘버 (Python) 구현전략 1) 주어진 범위 (1 ~ 10000) 내의 모든 수는 셀프 넘버가 될 수 있는 후보이다 (candidates) 2) 주어진 범위 (1.. 코드업 1615번 셀프 넘버 (Python) 출처 코드업 1615 셀프 넘버 정답 import sys def d(n): generate_number = n while (n > 0): generate_number += n % 10 n //= 10 return generate_number a, b = map(int, sys.stdin.readline().rstrip().split()) self_numbers = [i for i in range(b + 1)] for i in range(1, b): generate_result = d(i) if generate_result < b + 1: self_numbers[generate_result] = 0 sum_of_self_number = 0 for i in range(a, b + 1): if self_num.. 백준 11047번 동전 0 (Python) 출처 백준 11047 동전 0 정답 import sys N, K = map(int, sys.stdin.readline().split()) coins = [] for _ in range(N): A = int(sys.stdin.readline().rstrip()) coins.append(A) coins.sort(reverse=True) count = 0 for coin in coins: count = count + (K // coin) K = K % coin print(count) 문제 입출력 풀이 0. 전략 위키백과-탐욕_알고리즘 탐욕(Greedy) 알고리즘은 최적해를 구하는 데에 사용되는 근사적인 방법으로, 여러 경우 중 하나를 결정해야 할 때마다 그 순간에 최적이라고 생각되는 것을 선택해 나가는 방식으.. 백준 5585번 거스름돈 (Python) 출처 백준 5585 거스름돈 정답 import sys coins = [500, 100, 50, 10, 5, 1] N = int(sys.stdin.readline()) changes = 1000 - N coins.sort(reverse=True) count = 0 for coin in coins: count += (changes // coin) changes = changes % coin print(count) 문제 입출력 풀이 0. 전략 위키백과-탐욕_알고리즘 탐욕(Greedy) 알고리즘은 최적해를 구하는 데에 사용되는 근사적인 방법으로, 여러 경우 중 하나를 결정해야 할 때마다 그 순간에 최적이라고 생각되는 것을 선택해 나가는 방식으로 진행하여 최종적인 해답에 도달한다 큰 동전은 모두 작은 동전의 배수.. 백준 10812번 바구니 순서 바꾸기 (Python) 출처 백준 10812 바구니 순서 바꾸기 정답 import sys N, M = map(int, sys.stdin.readline().rstrip().split()) bucket = [i for i in range(1,N+1)] for _ in range(M): i, j, k = map(int, sys.stdin.readline().rstrip().split()) before_bucket = bucket[:i-1] changed_bucket1 = bucket[k-1:j] changed_bucket2 = bucket[i-1:k-1] after_bucket = bucket[j:] bucket = before_bucket + changed_bucket1 + changed_bucket2 + after_bucket.. 이전 1 다음