728x90

set 4

[Python]백준 BaekJoon.AC 1764 : 듣보잡(set, sorted())

https://www.acmicpc.net/problem/1764 1764번: 듣보잡 첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다. www.acmicpc.net set을 제대로 몰라 한참 헤맸다. 지금까진 중복 제거하는 목적으로만 사용해서... set이 집합의 의미를 가지고 있는지 모르고 있었다. 고로 set은 합집합, 교집합, 차집합을 능숙히 해낼 수 있는 아이였던 것이다..! 이런 기능도 모르고 리스트나 딕셔너리로 삽을 펐으니.. a = set([1, 2, 3]) b = set([3, 4, 5]) print(a|b) 출력:{1, 2, 3, 4, 5}..

[Python]BaekJoon.AC 2022.02.01

[Python]백준 BaekJoon.AC 11723 : 집합(Set)

https://www.acmicpc.net/problem/11723 11723번: 집합 첫째 줄에 수행해야 하는 연산의 수 M (1 ≤ M ≤ 3,000,000)이 주어진다. 둘째 줄부터 M개의 줄에 수행해야 하는 연산이 한 줄에 하나씩 주어진다. www.acmicpc.net add 조건을 보고 set으로 풀어야겠단 생각이 들었다. 일일이 확인해주는 것보다 애초에 중복을 허용하지 않은 set을 선택했고, 문제 자체에서도 set을 요구하고 있음을 느꼈다. 해야 할 연산의 수가 정말 많았고 시간이 넉넉하지 않단 생각이 들어 시간단축을 신경썼다. 첫번째 if문으로 리스트 길이를 확인해준 것도 같은 이유다. 조금이라도 줄여보고자 if문을 넣었는데, 이게 이득이었는진 확인하지 않았다.. 여느 스택 문제처럼 set..

[Python]BaekJoon.AC 2022.01.29

[Python]백준 BaekJoon.AC 1181 : 단어 정렬(sort())

https://www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net 정렬을 정식으로 접해봤다. 나름 쉽고 간편하다.. 리스트에 단어들을 넣어주고, set을 이용해 중복을 제거해줬다. 그리고 sort를 이용해 정렬을 시도했다. 리스트 항목의 길이를 최우선으로 뒀고, 사전식 배열을 다음 순위로 설정했다. 괄호 안에 순서대로 넣으면 된다. 굿! N = int(input()) words = [] for i in range(N): words.append(inpu..

[Python]BaekJoon.AC 2022.01.11

[Python]백준 BaekJoon.AC 3052 : 나머지(list, set)

https://www.acmicpc.net/problem/3052 3052번: 나머지 각 수를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1이다. 서로 다른 값은 6개가 있다. www.acmicpc.net for문을 이용해 list에 숫자 10개를 저장해줬고, set으로 타입을 변경해줬다. set은 중복을 알아서 제거해주기 때문이다. 글을 작성하며 든 생각인데, 애초에 set에 숫자를 받아도 됐을 것 같다..? list = [] for i in range(10): list.append(int(input()) % 42) over = set(list) print(len(over))

[Python]BaekJoon.AC 2022.01.03
728x90