ALGORITHM/Algorithm 문제풀이 (18) 썸네일형 리스트형 [문제풀이] 백준 4673번 셀프 넘버 4673번: 셀프 넘버 셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때, www.acmicpc.net org_numbers = set(range(1, 10001)) gen_numbers = set() for number in org_numbers: keep = number while number > 0: keep += int(number % 10) number = int(number / 10) gen_numbers.add(keep) self_numbers = sorted(org_numbers-gen_numbers.. [문제풀이] 백준 14713번 앵무새 14713번: 앵무새 자가용 비행기를 타고 세계 일주를 하던 pps789와 cseteram은 어느 날 엔진 고장으로 인해 이름 모를 섬에 불시착하게 된다. 그들은 이 섬을 탐험하는 도중 아주 신기한 사실을 알게 되었는데, 바로 www.acmicpc.net 7차 시도 n = int(input()) lines = [] for i in range(n): lines.append(list(map(str, input().split()))) target = list(map(str, input().split())) for item in target: correct = False for idx in range(n): if len(lines[idx]) != 0: if item == lines[idx][0]: lines[i.. [문제풀이] 백준 13335번 트럭 13335번: 트럭 입력 데이터는 표준입력을 사용한다. 입력은 두 줄로 이루어진다. 입력의 첫 번째 줄에는 세 개의 정수 n (1 ≤ n ≤ 1,000) , w (1 ≤ w ≤ 100) and L (10 ≤ L ≤ 1,000)이 주어지는데, n은 다리를 건너는 트 www.acmicpc.net 1차 시도 total_count = 0 n, w, L = map(int, input().split()) trucks = list(map(int, input().split())) bridge = [0] * w while True: bridge.pop(0) total_count += 1 if len(trucks) > 0: if sum(bridge) + trucks[0] [문제풀이] 백준 2161번 카드01 1차 시도 import queue q = queue.Queue() trash = [] n = int(input()) for data in range(1, n+1): q.put(data) while q.qsize() != 1: # step-1 trash.append(q.get()) # step-2 q.put(q.get()) trash.append(q.get()) for t in trash: print(t, end=' ') 어려운 문제는 아니었다. Queue에서 enqueue와 dequeue를 잘 이해하고 FIFO를 잘 파악하고 있다면 어렵지 않게 풀수 있는 문제이다. [문제풀이] Stack - 균형잡힌 세상 1차 시도 while True: input_data = input() if input_data == '.': break input_data = input_data.replace(' ', "") stack = [] for character in input_data: if character == '(' or character == '[': stack.append(character) elif character == ')': if len(stack) != 0: last = stack.pop() if last != '(': print("no") stack = None break else: print("no") stack = None break elif character == ']': if len(stack) !=.. [문제풀이] Stack - 괄호 1차 시도 n = int(input()) for idx in range(n): line = input() stack = [] for character in line: if character == '(': stack.append(character) elif character == ')': if len(stack) != 0: stack.pop() else: print("NO") stack = None break if stack is not None: if len(stack) == 0: print("YES") else: print("NO") 어렵지 않은 문제였다. [문제풀이] Hash - 카드 1차 시도 n = int(input()) cards = {} for idx in range(n): card = int(input()) if card in cards: cards[card] += 1 else: cards[card] = 0 many = max(list(cards.values())) pick = sorted([key for key, value in cards.items() if value == many]) print(pick[0]) 어렵지 않게 풀만 했음. Hash로 풀수 있는 문제 스타일이 좀 눈에 읽는 중이다. [문제풀이] Hash - 듣보잡 1차 시도 n, m = map(int, input().split()) d_names = {} for idx in range(n+m): name = input() if name in d_names: d_names[name] += 1 else: d_names[name] = 1 dbj = [key for key, value in d_names.items() if value == 2] dbj.sort() print(len(dbj)) for name in dbj: print(name) 좀 쉬운 문제를 선택했나보다. 어렵지 않았다. 이전 1 2 3 다음