def solution(arr): answer = [] answer.append(arr[0]) for i in range(1, len(arr)): if arr[i] != arr[i - 1]: answer.append(arr[i]) return answer 처음에 비슷하게 구현했으나계속 인덱스 에러가 떴는데,def solution(arr): answer = [] answer[0] = arr[0] // index error !!! for i in range(1, len(arr)): if arr[i] != arr[i - 1]: answer.append(arr[i]) return answer 비어있는 an..
Languages
일단 문제를 풀기 위한 나의 알고리즘은 이러했다.1. N만큼 입력 받으면서 개행 문자를 떼어내고 점(.) 뒤를 확장자 배열에 저장하자2. 확장자 배열을 sort하자 (사전순 출력)3. collections 모듈의 Counter를 사용해서 각 요소의 개수를 세자4. 각 요소와 개수를 출력하자 이게 완성된 코드import sysfrom collections import Counterinput = sys.stdin.readline# 파일 개수 N# N개 줄에 파일의 이름ext = []N = int(input())for i in range(N): file_ext = input().strip().split('.')[1] ext.append(file_ext)ext.sort()cnt = Counter(ex..
비교적 쉬운 문제였다. (내가 풀 정도^^) 여기서 나는 '듣'과 '보'의 중복 요소를 set(집합)을 사용하여굉장히 편하게 풀었다. 근데 그냥 내 머리로만 한 건 아니고.. 구글링을 살짝 해서잊지 않게 정리하려 한다. 일단 아래는 내가 푼 전체 코드이다.import sysinput = sys.stdin.readline# 듣 N# 보 MN, M = map(int, input().split())D = [input().strip() for i in range(N)] // strip() 사용하여 문자열 앞 뒤 공백 제거B = [input().strip() for j in range(M)]DB = sorted(set(D) & set(B)) // 사전 순 정렬print(len(DB)) // 중복 요소 개수# pr..
반복문으로 여러 줄을 입력받는 경우 input()을 사용하면 시간초과가 발생할 수 있다.따라서 시간 초과가 나지 않기 위해서는sys.stdin.readline()을 사용해야 한다.더보기📌input()이 sys.stdin.readline()보다 느린 이유1. input()은 매개변수로 prompt message를 받는다. (따라서 입력 받기 전에 prompt message를 출력해야 한다)2. 입력받은 값의 개행 문자를 삭제시키고 반환한다.예시)import sysT = int(input())for i in range(T): a, b = map(int, sys.stdin.readline().split()) print(a+b) 사용 전 import sys를 잊지 말자 💖 sys.stdin.readl..
파이썬의 기본적인 나누기는'/' 연산자 사용깔끔하게 정수형으로 리턴하지 않고 실수형(float)으로 리턴한다. >>>> 2/30.6666666666666666 몫만 구하기 위해서는 '//' 연산자 사용나머지를 구하기 위해서는 '%' 연산자 사용 몫과 나머지를 한 번에 연산할 수 있는 divmod함수도 있다.>>>> a, b = divmod(2, 3)>>>> a 0 >>>> b 2 몫과 나머지를 할당받을 변수 a와 b를 지정해주면 몫에 해당하는 값을 a에, 나머지에 해당하는 값을 b에 넣어준다.divmod에 정수형으로 입력하면 정수형 몫과 나머지 리턴, 실수형으로 입력하면 실수형 몫과 나머지 리턴나머지 연산이 아닌 몫과 나머지 값을 돌려주기 때문에 나머지 연산은 '%'를 이용해야 한다. 참고:https..