풀이 T = int(input()) for case in range(1, T+1): n = int(input()) name = [input() for _ in range(n)] answer = list(set(name)) answer.sort() answer = sorted(answer, key=len) print("#%d" % case) for ans in answer: print(ans) 정렬을 2번 해줘야 통과되는 문제였다... 1. name을 입력받고 중복되는 값을 제거하기 위해 set으로 바꾼 후 answer에 넣어준다. 2. answer.sort()로 answer를 정렬하면 사전순으로 정렬된다. 3. 다시, answer를 sorted(answer, key=len)으로 정렬하면 길이순으로 정렬된다.
t = int(input()) for case in range(t): string = input() cnt = 1 # 패턴의 길이 pattern = "" flag = False while True: pattern = string[:cnt] # print(pattern, cnt) if cnt == 10: break for i in range(cnt, len(string), cnt): if pattern != string[i:i + cnt]: break else: flag = True break if flag: break cnt += 1 print("#%d" % (case+1), len(pattern)) 설명 처음에 pattern의 길이를 1로 했다가 점점 늘려가면서 pattern을 찾는다. 만약 입력받은 ..
- Total
- Today
- Yesterday
- BOJ
- 힙
- Python
- C++
- hash
- Permutation
- programmers
- 코딩테스트
- 백준
- 프로그래머스
- 괄호
- 재귀
- 2019 Kakao Blind Recruitment
- SWExpert
- 구현
- 완전탐색
- 스택
- SW Expert
- 문자열처리
- dictionary
- combination
- 문자열
- 파이썬
- 정렬
- 2020 KAKAO BLIND RECRUITMENT
- left join
- 순열
- 우선순위큐
- 딕셔너리
- 해시
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |