본문 바로가기

004 컴퓨터과학/알고리즘19

[백준 온라인저지] 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. 6. 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. 6. 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. 6. 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. 6. 6.
[백준 온라인저지] 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. 6. 6.
[백준 온라인저지] 이진 탐색 / 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. 6. 6.
[백준 온라인저지] 이진 탐색 / 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. 6. 6.
[백준 온라인저지] 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. 6. 4.