- [백준 온라인저지] 3036. 링 문제 예제 소스코드 시간 : 44ms n = int(input()) arr = list(map(int, input().split())) for x in range(1, len(arr)) : n, m = arr[0], arr[x] while n % m != 0 : n, m = m, n % m print("{}/{}".format(arr[0]//m,arr[x]//m)) 2023.06.10
- [백준 온라인저지] 2609. 최대공약수와 최소공배수 문제 예제 소스코드 시간 : 48ms n, m = map(int, input().split()) num1, num2 = n, m while n % m != 0 : n, m = m, n % m print(m) print(num1 * num2 // m) 2023.06.10
- [백준 온라인저지] 1934. 최소공배수 문제 예제 소스코드 시간 : 76ms n = int(input()) arr = [] def gcd(x, y) : if x % y == 0 : return y else : return gcd(y, x % y) for x in range(n) : x, y = map(int, input().split()) _gcd = gcd(x, y) target = int(x * y / _gcd) arr.append(target) for x in arr : print(x) 모범답안 import sys n = int(input()) for x in range(n) : a, b = map(int, sys.stdin.readline().split()) num1, num2 = a, b while num1 % num2 != 0 : .. 2023.06.10
- [백준 온라인저지] 14425. 문자열 집합 문제 예제 소스코드 시간 : 132ms import sys n, m = map(int, input().split()) answer = 0 source = {} for x in range(n) : word = sys.stdin.readline().rstrip() source[word] = True for x in range(m) : word = sys.stdin.readline().rstrip() if source.get(word) : answer += 1 print(answer) 2023.06.06
- [백준 온라인저지] 1764. 듣보잡 문제 예제 소스코드 시간 : 88ms import sys n, m = map(int, sys.stdin.readline().split(' ')) names = {} for x in range(n) : key = sys.stdin.readline().rstrip() names[key] = True count = 0 answers = [] for x in range(m) : target = sys.stdin.readline().rstrip() if names.get(target) : count += 1 answers.append(target) print(count) answers.sort() for x in answers : print(x) 2023.06.06
- [백준 온라인저지] 이진 탐색 / 2805. 나무 자르기 문제 예제 소스코드 시간 : 4292ms n, m = map(int, input().split(' ')) arr = list(map(int, input().split(' '))) arr.sort() start = 1 end = max(arr) result = 0 while (start mid : length += x - mid if length == m : result = mid break elif length > m : result = mid start = mid + 1 else : end = mid - 1 print(result) 2023.06.06
- [백준 온라인저지] 이진 탐색 / 10816. 숫자 카드 2 문제 예제 소스코드 시간 : 1500ms from bisect import bisect_left, bisect_right n = int(input()) numbers = list(map(int, input().split(' '))) m = int(input()) targets = list(map(int, input().split(' '))) numbers.sort() def bisect_num(arr, target) : x = bisect_right(arr, target) y = bisect_left(arr, target) return x - y arr = [bisect_num(numbers, x) for x in targets] for x in arr : print(x, end=' ') 2023.06.06
- [백준 온라인저지] 1157. 단어 공부 문제 예제 소스코드 시간 : 236ms s = input() s = s.upper() hashes = {} for x in s : if(hashes.get(x)) : hashes[x] += 1 else : hashes[x] = 1 answer = [k for k,v in hashes.items() if max(hashes.values()) == v] print(answer[0] if len(answer) == 1 else '?') 메모 Python Dictionary의 Key, Value 접근 : Dictionary.items() --> Object.entries(object) in Javascript 유용한 기능 : Python List Comprehension 2023.06.04
- [백준 온라인저지] 그리디 알고리즘 / 5585. 거스름돈 문제 예제 소스코드 시간 : 48ms n = int(input()) m = 1000 - n coins = [500,100,50,10,5,1] count = 0 for coin in coins : count += m // coin m %= coin print(count) 2023.06.04
- [백준 온라인저지] 그리디 / 2839. 설탕 배달 문제 예제 소스코드 시간 : 44ms n = int(input()) count = 0 for x in range(n // 5, -1, -1) : m = n - (5 * x) if(m % 3 == 0) : count += x count += m // 3 break print(count if count else -1) 2023.06.04
- [백준 온라인저지] 정렬 알고리즘 / 1181. 단어 정렬 문제 예제 소스코드 시간 : 4596ms import sys n = int(sys.stdin.readline()) answer = [] strings = [] for x in range(n) : string = sys.stdin.readline().strip() strings.append(string) strings.sort(key = lambda x : (len(x), x)) for x in strings : if x not in answer : answer.append(x) for x in answer : print(x) 메모 sys.stdin.readline() 을 사용하면, '\n' 이 삽입된다. -> strip() 으로 제거 문자열 또한 sort()를 이용해 정렬할 수 있다. sort(key =.. 2023.06.04
- [백준 온라인저지] 정렬 알고리즘 / 2751. 수 정렬하기 2 문제 예제 소스코드 시간 : 1380ms import sys answer = [] n = int(sys.stdin.readline()) for x in range(n) : num = int(sys.stdin.readline()) answer.append(num) for i in sorted(answer) : print(i) 2023.06.04