반응형

파이썬 set 6

[파이썬, Python] 백준 2776: 암기왕

문제 https://www.acmicpc.net/problem/2776 2776번: 암기왕 연종이는 엄청난 기억력을 가지고 있다. 그래서 하루 동안 본 정수들을 모두 기억 할 수 있다. 하지만 이를 믿을 수 없는 동규는 그의 기억력을 시험해 보기로 한다. 동규는 연종을 따라 다니며, www.acmicpc.net 코드 import sys input = sys.stdin.readline t = int(input()) for _ in range(t): n = int(input()) note1 = set(map(int, input().split())) m = int(input()) note2 = list(map(int, input().split())) for num in note2: if num in note1..

[파이썬, Python] 백준 11478: 서로 다른 부분 문자열의 개수

문제 https://www.acmicpc.net/problem/11478 11478번: 서로 다른 부분 문자열의 개수 첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000 이하이다. www.acmicpc.net 코드 s = input() text = set() for i in range(len(s)): for j in range(i, len(s)): text.add(s[i:j+1]) print(len(text)) 설명 이중 반복문을 통해 해결했다. 우선 i의 범위를 s의 개수로 잡아주고, j의 범위를 i부터 s의 개수로 잡아주어 모든 문자열을 돌 수 있게 하고, i부터 j+1까지의 범위를 text에 추가하여 부분 문자열을 구한다. 이 때, text는 set 형태의 자..

[파이썬, Python] 백준 1269: 대칭 차집합

문제 https://www.acmicpc.net/problem/1269 1269번: 대칭 차집합 첫째 줄에 집합 A의 원소의 개수와 집합 B의 원소의 개수가 빈 칸을 사이에 두고 주어진다. 둘째 줄에는 집합 A의 모든 원소가, 셋째 줄에는 집합 B의 모든 원소가 빈 칸을 사이에 두고 각각 주어 www.acmicpc.net 코드 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)) 설명 set을 통해서 집합의 계산을 통해 풀이했다. set은 파이썬에서 중복을 제거할 ..

[파이썬, Python] 백준 1065: 한수

문제 https://www.acmicpc.net/problem/1065 1065번: 한수 어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 www.acmicpc.net 코드 N = int(input()) sequence_num = set() for i in range(1,N+1): num = str(i) if len(num)

[파이썬, Python] 백준 4673: 셀프 넘버

문제 https://www.acmicpc.net/problem/4673 4673번: 셀프 넘버 셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때, www.acmicpc.net 코드 numbers = set(range(1,10001)) remove_numbers = set() for i in range(1, 10001): for j in str(i): i += int(j) remove_numbers.add(i) self_numbers = sorted(numbers - remove_numbers) for i in se..

[파이썬, Python] 백준 1157: 단어 공부

문제 https://www.acmicpc.net/problem/1157 1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. www.acmicpc.net 코드 word = input().upper() wordli = list(set(word)) cnt = [] for i in wordli: count = word.count cnt.append(count(i)) if cnt.count(max(cnt)) > 1: print("?") else: print(wordli[cnt.index(max(cnt))]) 설명 우선 단어를 입력받아야 하는데 대소문자의 구분이 없다고 했으므로, up..

반응형