1부터 8까지의 수를 range()를 사용해 리스트에 저장한다.리스트 컴프리헨션을 사용해 리스트의 값과 입력받은 값을 차례대로 비교한 check와 역순으로 비교한 rvcheck를 만든다.all()을 사용해 check가 전부 true일때 ascending을 출력하고 rvcheck가 전부 true일 때는 descending을 출력한다.전부 아닐 때는 mixed를 출력한다.문제풀이lst = range(1, 9) scale = list(map(int,input().split())) check = [x == scale[x - 1] for x in lst] rvcheck = [x == scale[8 - x] for x in lst] if all(check): print("ascending") elif all(rvc..
먼저 입력받은 문자열을 upper()를 사용해 대문자로 변환하고 collections.Counter()를 사용해 알파벳의 개수를 저장한다.딕셔너리 형태로 저장된 알파벳 개수의 가장 큰 값과 알파벳의 value를 비교해 다르면 해당 알파벳을 제거한다.최종적으로 딕셔너리에 남은 알파벳의 개수가 2개 이상일 경우 ?를 출력하고 아니면 해당 알파벳을 출력한다.문제풀이import collections string = collections.Counter(input().upper()) for k, v in dict(string).items(): if v != max(string.values()): del string[k] if len(string) >= 2: print("?") else: print("".join(l..
N(x)일 때 정사각형의 한 변의 길이는 피보나치 수열을 통해 구할 수 있다.테스트 케이스를 잘 살펴보면 N개의 타일로 구성된 직사각형의 둘레는 N(x + 2) * 2로 구할 수 있다는 것도 확인할 수 있다.문제풀이 def solution(N): lst = [1,1,2] for rpt in range(3, N + 2): lst.append(lst[rpt - 1] + lst[rpt - 2]) return lst[N + 1] * 2
완주하지 못한 선수에서 사용한 collections.Counter로 의상의 종류에 속하는 원소의 개수를 딕셔너리 형태로 저장한다.의상의 종류가 겉옷, 상의, 하의가 있을 때 경우의 수를 구하는 공식은 (겉옷의 개수) * (상의의 개수) * (하의의 개수)이다.그러나 이 공식은 각각의 옷을 최소 1개씩 입었을 상황이기 때문에 입지 않았을 때의 상황도 고려해 각각 1을 더하여 곱한다.그러면 아무것도 입지 않는 경우의 수도 생긴다. 하지만 스파이는 최소 한 개의 의상을 입기 때문에 1을 빼 반환한다.문제풀이import collections def solution(clothes): ans = 1 lst = collections.Counter([x for i,x in clothes]) for i in lst: a..
입력받은 리스트를 문자열의 길이가 짧은 순으로 정렬한다. 그 리스트의 맨 뒤부터 startswith을 사용하여 그 값을 제외한 다른 문자열이 접두어로 있는지 검사하고 리스트에 저장한다.그리고 any를 사용하여 검사해 하나라도 참이 있으면 False를 반환하고, 검사가 다 끝나면 True를 반환한다. 문제풀이def solution(phone_book): phone_book = sorted(phone_book, key=len) for rpt in phone_book: if any([phone_book[-1].startswith(x) for x in phone_book[0:-1]]): return False return True
collections.Counter를 사용해 문제를 해결했다. collections.Counter는 리스트나 튜플 등 어떤 집합에서의 원소의 개수를 딕셔너리 형태의 Counter 객체로 반환한다.Counter 객체는 다양한 사칙연산을 지원한다. 예제 >>> c = Counter(a=3, b=1)>>> d = Counter(a=1, b=2)>>> c + d Counter({'a': 4, 'b': 3})>>> c - d Counter({'a': 2})>>> c & d Counter({'a': 1, 'b': 1})>>> c | d Counter({'a': 3, 'b': 2})출처 : https://docs.python.org 먼저 collections.Counter를 사용해 원소의 개수를 센다. 그리고 par..