본문 바로가기
반응형

백준알고리즘/집합과 맵8

(Python/🥈5)백준 알고리즘 7785번: 회사에 있는 사람 문제 : 상근이는 세계적인 소프트웨어 회사 기글에서 일한다. 이 회사의 가장 큰 특징은 자유로운 출퇴근 시간이다. 따라서, 직원들은 반드시 9시부터 6시까지 회사에 있지 않아도 된다. 각 직원은 자기가 원할 때 출근할 수 있고, 아무때나 퇴근할 수 있다. 상근이는 모든 사람의 출입카드 시스템의 로그를 가지고 있다. 이 로그는 어떤 사람이 회사에 들어왔는지, 나갔는지가 기록되어져 있다. 로그가 주어졌을 때, 현재 회사에 있는 모든 사람을 구하는 프로그램을 작성하시오. 입력 : 첫째 줄에 로그에 기록된 출입 기록의 수 n이 주어진다. (2 ≤ n ≤ 106) 다음 n개의 줄에는 출입 기록이 순서대로 주어지며, 각 사람의 이름이 주어지고 "enter"나 "leave"가 주어진다. "enter"인 경우는 출근,.. 2023. 6. 11.
(Python/🥈3)백준 알고리즘 11478번: 서로 다른 부분 문자열의 개수 문제 출처:https://www.acmicpc.net/step/49 집합과 맵 단계 카드의 집합을 만들어 특정 카드가 집합에 있는지 빠르게 찾는 문제 www.acmicpc.net 풀이: word = input new_word = list() for i in range(len(word)): # 단어의 길이만큼 반복 즉 5번 for j in range(len(word)- i): # 단어 끝까지만 반복해야하므로 앞에 한거 빼줌 new_word.append(word[i:j+i+1]) # 리스트에 추가하기 print(len(set(new_word))) 조금 어려웠다. 처음에는 리스트에 담아서 한개씩 뽑아서 넣으려고 했지만 코드로 어떻게 써야 할줄 몰라서 다르게 생각했는데, new_word.append(word[i.. 2022. 5. 26.
(Python/🥈3)백준 알고리즘 1269번: 대칭 차집합 문제 출처:https://www.acmicpc.net/problem/1269 1269번: 대칭 차집합 첫째 줄에 집합 A의 원소의 개수와 집합 B의 원소의 개수가 빈 칸을 사이에 두고 주어진다. 둘째 줄에는 집합 A의 모든 원소가, 셋째 줄에는 집합 B의 모든 원소가 빈 칸을 사이에 두고 각각 주어 www.acmicpc.net 풀이: (N,M) = sys.stdin.readline().split() A = set() B = set() for i in sys.stdin.readline().rstrip(): A.add(i) A.discard(' ') for i in sys.stdin.readline().rstrip(): B.add(i) B.discard(' ') print(len(A-B)+len(B-A)) .. 2022. 5. 26.
(Python/🥈4)백준 알고리즘 1764번: 듣보잡 문제 출처:https://www.acmicpc.net/problem/1764 1764번: 듣보잡 첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다. www.acmicpc.net 풀이: (N,M) = sys.stdin.readline().split() # N은 듣잡 M은 보잡 list1 = set() list2 = set() for i in range(int(N)): list1.add(sys.stdin.readline().rstrip()) for i in range(int(N)+1): list2.add(sys.stdin.readline().rstrip()) r.. 2022. 5. 26.
(Python/🥈4)백준 알고리즘 10816번: 숫자 카드 2 문제 출처: https://www.acmicpc.net/problem/10816 10816번: 숫자 카드 2 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net 풀이: N = int(input()) arr = list(map(int, input().split())) N2 = int(input()) arr2 = list(map(int, input().split())) res = list() for i in arr2: if i in arr: res.append(arr.count(i)) else: res.appen.. 2022. 5. 26.
(Python/🥈4)백준 알고리즘 1620번: 나는야 포켓몬 마스터 이다솜 문제 출처:https://www.acmicpc.net/step/49 집합과 맵 단계 카드의 집합을 만들어 특정 카드가 집합에 있는지 빠르게 찾는 문제 www.acmicpc.net 풀이: (N,M) = sys.stdin.readline().split() # 도감에 있는 포켓몬 갯수 N 문제갯수 dict = {} # 문제가 알파벳으로만 들어오면 포켓몬 번호를 말해야 하고, # 숫자로만 들어오면, 포켓몬 번호에 해당하는 문자를 출력해야해. for i in range(1,int(N)+1): word = sys.stdin.readline().rstrip() dict[i] = word dict[word] = i # dict 을 만들어줌 몬스터가 키일때 숫자가 키일때 둘다 for i in range(int(M)): .. 2022. 5. 26.
반응형