[문제] 알파벳 소문자로 이루어진 N개의 단어가 들어오면 아래와 같은 조건에 따라 정렬하는 프로그램을 작성하시오. 1. 길이가 짧은 것부터 2. 길이가 같으면 사전 순으로 [내 코드] import sys T = int(sys.stdin.readline().rstrip()) dic = {} for line in sys.stdin: txt = line.rstrip() if txt in dic.keys(): continue dic[txt] = len(txt) for k, v in sorted(dic.items(), key=lambda x: (x[1], x[0])): print(k) 입력된 단어들 중 중복된 단어가 없다길래, 이를 키로 갖는 딕셔너리 구조는 어떨까 싶었다. 그 후 들어온 입력 값을 줄마다 처리하..

[백준 10814] 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 작성하시오. [내 코드] n = int(input()) info = {} for i in range(0, n): x, y = input().split()# ==> x, y = sys.stdin.readline().rstrip().split() x = int(x) if x in info.keys(): info[x].append(y) else: info[x] = [y] for k,v in sorted(info.items()): for i in range(len(v)): print(k, v[i]) 코드 자체도..
sequence 객체에서 특정 수(step)를 반복하여 얻은 위치에 해당하는 원소만 뽑아낼 수 있다. 이를 이용하여 list 객체를 역순으로 배치할 수 있다. # sequence 객체 슬라이싱 seq[start:end:step] >>> s = range(20) >>> s [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19] >>> s[::3] [0, 3, 6, 9, 12, 15, 18] >>> >>> # 역순 >>> s[::-1] [19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0] 이것만 잘 활용하면 금방 풀렸을 문제였다ㅠ
C++에서 python으로 갈아타려니, 너무 낯설다. 백준 문제를 풀면서 다시 차근차근 기억해내보자...! [백준 2920 문제] 다장조는 c d e f g a b C, 총 8개 음으로 이루어져있다. 이 문제에서 8개 음은 다음과 같이 숫자로 바꾸어 표현한다. c는 1로, d는 2로, ..., C를 8로 바꾼다. 1부터 8까지 차례대로 연주한다면 ascending, 8부터 1까지 차례대로 연주한다면 descending, 둘 다 아니라면 mixed 이다. 연주한 순서가 주어졌을 때, 이것이 ascending인지, descending인지, 아니면 mixed인지 판별하는 프로그램을 작성하시오. [내 코드] result = "" list = [int(x) for x in input().split()] #앞의 두..