[python] 백준 17219번 비밀번호 찾기
알고리즘/백준2022. 3. 9. 23:13[python] 백준 17219번 비밀번호 찾기

문제 풀이 간단하게 dictionary로 풀 수 있다. 첫째 줄에 사이트 주소의 수와 비밀번호를 찾으려는 사이트 주소의 수가 공백을 두고 주어진다. 두번째 줄부터 17번째 줄까지는 저장된 주소와 해당 주소에 저장된 비밀번호가 주어진다. 18번째 줄부터 마지막번째 줄까지는 비밀번호를 찾으려는 사이트의 주소가 주어진다. 내가 생각한 방법은 딕셔너리를 이용하는 것이다. key값으로 주소 value값으로 비밀번호를 넣어 dictionary를 만들어주고 키값에 비밀번호를 찾으려는 사이트의 주소가 들어오면 그에 맞는 value값을 반환해주면 된다. 완성된 코드!!👍😊 import sys N, M = map(int, input().split()) address_dict = dict() for _ in range(N)..

[python] 백준 1269번 대칭 차집합
알고리즘/백준2022. 2. 4. 23:32[python] 백준 1269번 대칭 차집합

문제 풀이 집합 같은 경우 set() 함수를 이용하면 쉽게 풀 수 있다. set() 함수는 중복을 허용하지 않으므로 수식으로 나타내 보면 아래의 수식처럼 나타낼 수 있다. A U B - (A ∩ B) 합집합 같은경우 union 함수, 교집합 같은 경우 intersection 함수를 사용하면 된다. 완성된 코드!!👍😊 n, m = map(int, input().split()) A = set(map(int, input().split())) B = set(map(int, input().split())) print(len(A.union(B) - A.intersection(B)))

[python] 백준 1764번 듣보잡
알고리즘/백준2022. 2. 1. 14:12[python] 백준 1764번 듣보잡

문제 풀이 간단하게 생각하면 듣도 못한 사람들과 보도 못한 사람들의 교집합을 구하면 되는 문제이다. 합쳐서 듣보잡의 수와 해당하는 사람들을 출력하면 되는 것이다. 예제 입력1에서 듣도 보도 못한 사람들의 교집합에는 ohhennrie baesangwook 두 사람이 있기 때문에 출력의 결과가 이렇다. 여기서 생각한 방법은 set함수를 이용하는 것이었다. list도 있겠지만 입력에서 보면 N, M은 500,000 이하의 자연수 즉 입력을 N, M 합쳐 백만 번 정도를 돌린다는 소리인데... 분명 시간초과가 날것이기 때문에 list보다는 set을 이용하게 되었다. 집합을 만들어주고 해당 교집합을 구하여 출력할 때 사전 순으로 출력하라고 했기 때문에 정렬 함수인 sorted를 이용해주면 된다. 완성된 코드!!👌..

[python] 백준 2161번 카드1
알고리즘/백준2021. 11. 25. 21:18[python] 백준 2161번 카드1

문제 풀이 문제에서 N=4인 경우에 버린 카드는 1 3 2가 되고 남는 카드는 4가 되어 출력 결과가 1 3 2 4가 되길래 짝수 홀수로 나누면 될 줄 알았다. 하지만 테스트 케이스 1번에서 출력 결과가 1 3 5 7 4 2 6이 되는 것에 대해서 도무지 이해가 안 되어 결국 그림을 그려 이해를 하고 어떻게 하면 풀 수 있을지를 알아냈다. 그림에서와 같이 cnt 값에 따라서의 2가지의 작업을 돌리면 되었다. 1. cnt가 홀수면 첫 번째 원소 값을 원래 리스트에서 pop 하고 다른 리스트에 append 2. cnt가 짝수면 첫 번째 원소 값을 원래 리스트에 append 하고 원래 리스트에서 첫 번째 위치에 있는 원소 값을 pop 대부분의 사람들은 데크(dequeue)로 푸셨던데 아직 본인은 쓸 줄 몰라 ..

[python] 백준 10845번 큐
알고리즘/백준2021. 11. 24. 21:36[python] 백준 10845번 큐

문제 풀이 명령어 6가지 중 push 명령어는 해당 명령어만 실행하고 출력은 없다. 테스트 케이스 입력 부분을 보면 파라미터를 2개, 1개 받는 경우가 있기 때문에 함수를 써서 하나의 인자는 받고 다른 인자는 default로 두어 해당 명령어가 들어오면 명령어 역할에 맞게 실행시켜주면 될 것 같았다. def 함수명(a, b=0): return queue는 리스트 구조를 이용하였고, 명령어를 받기 위해 빠른 입출력의 sys.stdin.readline()을 이용하였다. 그냥 입출력을 쓰면 시간 초과가 나게 된다. 또한 입력 명령어 중에 push 같은 경우 공백을 포함한 두번째 인자 값을 받아서 정수형(int)으로 만들어 줘야 하므로 split함수로 입력받았다. cmd = sys.stdin.readline()..

image