본문 바로가기

알고리즘/백준

(45)
[Python] 백준 파이썬 11478 서로 다른 부분 문자열의 개수 https://www.acmicpc.net/problem/11478 11478번: 서로 다른 부분 문자열의 개수 첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000 이하이다. www.acmicpc.net # 백준 11478 서로 다른 부분 문자열의 개수 s = input() subword = [] k=1 for i in range(len(s)): # 1 for j in range(len(s)+1-k): # 2 subword.append(s[j:j+k]) k += 1 subword=set(subword) print(len(subword)) 문자열 슬라이싱을 이용했습니다. k는 subword의 크기입니다. # 1 : subword는 크기가 1부터 len(s)까지 가능하..
[Python] 백준 파이썬 1269 대칭 차집합 https://www.acmicpc.net/problem/1269 1269번: 대칭 차집합 첫째 줄에 집합 A의 원소의 개수와 집합 B의 원소의 개수가 빈 칸을 사이에 두고 주어진다. 둘째 줄에는 집합 A의 모든 원소가, 셋째 줄에는 집합 B의 모든 원소가 빈 칸을 사이에 두고 각각 주어 www.acmicpc.net #백준 1269 대칭 차집합 import sys input = sys.stdin.readline n, m = map(int, input().split()) a = set(map(int, input().split())) b = set(map(int, input().split())) print(len(a-b) + len(b-a)) 차집합은 그냥 {A} - {B}로 구할 수 있습니다. 이번에도 쉬..
[Python] 백준 파이썬 1764 듣보잡 https://www.acmicpc.net/problem/1764 1764번: 듣보잡 첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다. www.acmicpc.net # 백준 1764 듣보잡 import sys input = sys.stdin.readline n, m = map(int, input().split()) not_heard = set([input().strip() for _ in range(n)]) # 보지도 못한놈들 집합 not_seen = set([input().strip() for _ in range(m)]) # 듣지도 못한놈들 집합 not_..
[Python] 백준 파이썬 10816 숫자 카드 2 https://www.acmicpc.net/problem/10816 10816번: 숫자 카드 2 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net # 백준 10816 숫자 카드 2 from collections import Counter n = int(input()) hand_card = [n for n in map(int, input().split())] card_counter = Counter(hand_card) m = int(input()) check_list = [n for n in map(int, ..
[Python] 백준 파이썬 1620 나는야 포켓몬 마스터 이다솜 https://www.acmicpc.net/problem/1620 1620번: 나는야 포켓몬 마스터 이다솜 첫째 줄에는 도감에 수록되어 있는 포켓몬의 개수 N이랑 내가 맞춰야 하는 문제의 개수 M이 주어져. N과 M은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수인데, 자연수가 뭔지는 알지? 모르면 www.acmicpc.net 풀이 1 # 백준 1620 나는야 포켓몬 마스터 이다솜 # n : 포켓몬의 개수 # m : 맞춰야 하는 문제의 개수 import sys input = sys.stdin.readline n, m = map(int, input().split()) pname2index = {} # 1 for i in range(n): name = input().strip() pname2in..
[Python] 백준 파이썬 14425 문자열 집합 https://www.acmicpc.net/problem/14425 14425번: 문자열 집합 첫째 줄에 문자열의 개수 N과 M (1 ≤ N ≤ 10,000, 1 ≤ M ≤ 10,000)이 주어진다. 다음 N개의 줄에는 집합 S에 포함되어 있는 문자열들이 주어진다. 다음 M개의 줄에는 검사해야 하는 문자열들이 주어 www.acmicpc.net n, m = map(int, input().split()) sen_1 = [] sen_2 = [] for i in range(n+m): sentence = input() if i < n : sen_1.append(sentence) else: sen_2.append(sentence) set_1 = set(sen_1) cnt=0 for i in sen_2: if i i..
[Python] 백준 파이썬 10815 숫자 카드 https://www.acmicpc.net/problem/10815 10815번: 숫자 카드 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net # 백준 10815 숫자 카드 import sys n = int(sys.stdin.readline()) hand_card = list(map(int, sys.stdin.readline().split())) m = int(sys.stdin.readline()) num = list(map(int, sys.stdin.readline().split())) one_hot_li..
[Python] 백준 파이썬 1436 영화감독 숌 https://www.acmicpc.net/problem/1436 1436번: 영화감독 숌 666은 종말을 나타내는 숫자라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타 www.acmicpc.net 첫 시도 # 백준 1436 영화감독 숌 n = int(input()) title_list = [] i=666 while True: if len(title_list) == n: print(title_list[-1]) break i_list = list(str(i)) six_cnt = 0 for j in range(len(i_list)-1): if i_list[j] == '6' and i_list[..