알고리즘(66)
-
백준 13241 파이썬 유클리드 호제법
백준 13241 - 최소공배수 문제 https://www.acmicpc.net/problem/13241 13241번: 최소공배수 정수 B에 0보다 큰 정수인 N을 곱해 정수 A를 만들 수 있다면, A는 B의 배수이다. 예: 10은 5의 배수이다 (5*2 = 10) 10은 10의 배수이다(10*1 = 10) 6은 1의 배수이다(1*6 = 6) 20은 1, 2, 4,5,10,20의 배수이다. 다 www.acmicpc.net 답안 코드 : def gcd(a, b): while b: a, b = b, a % b return a def lcm(a, b): return a * b // gcd(a, b) A, B = map(int, input().split()) result = lcm(A, B) print(resul..
2024.04.23 -
백준 11478 파이썬 strip() 메서드
백준 11478 - 서로 다른 부분 문자열의 개수 문제 https://www.acmicpc.net/problem/11478 11478번: 서로 다른 부분 문자열의 개수 첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000 이하이다. www.acmicpc.net 답안 코드 : s = input().strip() n = len(s) substrings = set() # 서로 다른 부분 문자열을 저장할 set 초기화 for i in range(n): for j in range(i + 1, n + 1): substrings.add(s[i:j]) # 모든 가능한 부분 문자열 result = len(substrings) print(result) 백준 / 문제 / 단계별로 풀어보..
2024.04.21 -
백준 1269 파이썬 symmetric_difference 메서드
백준 1269 - 대칭 차집합 문제 https://www.acmicpc.net/problem/1269 1269번: 대칭 차집합 첫째 줄에 집합 A의 원소의 개수와 집합 B의 원소의 개수가 빈 칸을 사이에 두고 주어진다. 둘째 줄에는 집합 A의 모든 원소가, 셋째 줄에는 집합 B의 모든 원소가 빈 칸을 사이에 두고 각각 주어 www.acmicpc.net 답안 코드 : # 집합 A와 B의 원소의 개수 입력 n, m = map(int, input().split()) # 집합 A와 B의 원소 입력 A = set(map(int, input().split())) B = set(map(int, input().split())) # 대칭 차집합 계산 symmetric_difference = A.symmetric_diff..
2024.04.20 -
백준 1746 파이썬 intersection 메서드
백준 1746 - 듣보잡 문제 https://www.acmicpc.net/problem/1764 1764번: 듣보잡 첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다. www.acmicpc.net 답안 코드 : # 듣도 못한 사람과 보도 못한 사람의 명단을 입력 받음 n, m = map(int, input().split()) not_heard = set(input() for _ in range(n)) not_seen = set(input() for _ in range(m)) # 듣보잡 명단 계산 intersection = not_heard.intersecti..
2024.04.19 -
백준 10815 파이썬
백준 10815 - 숫자 카드 문제 https://www.acmicpc.net/problem/10815 10815번: 숫자 카드 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net 답안 코드 : import sys input = sys.stdin.readline # 입력 받기 n = int(input()) # 상근이가 가지고 있는 숫자 카드의 개수 cards = set(map(int, input().split())) # 숫자 카드에 적혀있는 정수들 m = int(input()) # 검사할 숫자의 개수 numb..
2024.04.14 -
백준 18870 파이썬 딕셔너리
백준 18870 - 좌표 압축 문제 https://www.acmicpc.net/problem/18870 18870번: 좌표 압축 수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표 Xj의 개수와 같아야 한다. X1, X2, ..., XN에 www.acmicpc.net 답안 코드 : import sys input = sys.stdin.readline n = int(input()) arr = list(map(int, input().split())) sorted_arr = sorted(list(set(arr))) # 중복 제거 및 정렬 dic = {sorted_arr[i]: i ..
2024.04.13