목록문제/백준_파이썬 (155)
sm 기술 블로그
import sys input = sys.stdin.readline S = input().strip() S_repository = set() for i in range(len(S)): for j in range(i, len(S)): tmp = S[i:j+1] S_repository.add(tmp) print(len(S_repository)) 문제요약 문자열이 들어오면 각 부분을 쪼개서 개수를 세시오. 단, 중복은 제외. 해설 문자열을 한글자부터 차근차근 자르기를 이용하면 된다. 파이썬에서는 문자열 슬라이싱을 이용하면된다. for i in range(len(S)): for j in range(i, len(S)): tmp = S[i:j+1] S_repository.add(tmp) 예를들어 Hello가 입력된..
import sys input = sys.stdin.readline N, M = map(int, input().split()) A = set(map(int, input().split())) B = set(map(int, input().split())) C = 0 C += len(list(A-B)) C += len(list(B-A)) print(C) 문제요약 A와B의 차집합, B와A의 차집합 개수를 구해라. 해설 집합에서 차집합,교집합,합집합에 관한 것을 문제로 다룬 것이다. 집합자료형은 아래를 참고하자. https://smhope.tistory.com/257 집합자료형 집합이 다음과 같이 주어졌다고 해보자. >>> s1 = set([1, 2, 3, 4, 5, 6]) >>> s2 = set([4, 5, 6..
import sys input = sys.stdin.readline N, M = map(int, input().split()) whoIs = list(input().strip() for _ in range(N)) name = list(input().strip() for _ in range(M)) cnt = 0 result = [] whoIsDic = {whoIs[i]: 1 for i in range(len(whoIs))} for val in name: try: whoIsDic[val] cnt += 1 result.append(val) except: continue resultSorted = sorted(result, key=lambda x: (x)) print(str(cnt)) print("\n".joi..
import sys input = sys.stdin.readline input() haveCard = list(map(int, input().split())) input() compareCard = list(map(int, input().split())) cardMap = {} for val in haveCard: if val in cardMap: cardMap[val] += 1 else: cardMap[val] = 1 for val in compareCard: try: print(cardMap[val], end=" ") except: print("0", end=" ") 문제 요약 상근이가 가지고 있는 각 카드의 갯수를 출력해라.(범위가 매우 크다) 해설 데이터 사전에 값을 count로 주었을 때 시간초..