풀이 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)으로 정렬하면 길이순으로 정렬된다.
문제출처 - https://www.acmicpc.net/problem/11652 11652번: 카드 준규는 숫자 카드 N장을 가지고 있다. 숫자 카드에는 정수가 하나 적혀있는데, 적혀있는 수는 -262보다 크거나 같고, 262보다 작거나 같다. 준규가 가지고 있는 카드가 주어졌을 때, 가장 많이 가지고 있는 정수를 구하는 프로그램을 작성하시오. 만약, 가장 많이 가지고 있는 정수가 여러 가지라면, 작은 것을 출력한다. www.acmicpc.net n = int(input()) dic = {} for case in range(n): tmp = int(input()) if tmp in dic: dic[tmp] += 1 else: dic[tmp] = 1 dic = sorted(dic.items(), key=l..
문제출처 - https://www.acmicpc.net/problem/3047 3047번: ABC 문제 세 수 A, B, C가 주어진다. A는 B보다 작고, B는 C보다 작다. 세 수 A, B, C가 주어졌을 때, 입력에서 주어진 순서대로 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 세 수 A, B, C가 주어진다. 하지만, 순서는 A, B, C가 아닐 수도 있다. 세 수는 100보다 작거나 같은 자연수이다. 둘째 줄에는 A, B, C로 이루어진 세 글자가 주어지며, 이 순서대로 출력하면 된다. 출력 주어진 세 수를 주어진 출력 순서대로 출력하면 www.acmicpc.net arr = list(map(int, input().split())) arr.sort() order = input() dic = ..
문제출처 - https://www.acmicpc.net/problem/10825 10825번: 국영수 첫째 줄에 도현이네 반의 학생의 수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 한 줄에 하나씩 각 학생의 이름, 국어, 영어, 수학 점수가 공백으로 구분해 주어진다. 점수는 1보다 크거나 같고, 100보다 작거나 같은 자연수이다. 이름은 알파벳 대소문자로 이루어진 문자열이고, 길이는 10자리를 넘지 않는다. www.acmicpc.net n = int(input()) arr = [] for case in range(n): a, b, c, d = input().split() arr.append([int(b), int(c), int(d), a]) arr = sorted(arr, key=lam..
문제출처 - https://www.acmicpc.net/problem/11004 11004번: K번째 수 수 N개 A1, A2, ..., AN이 주어진다. A를 오름차순 정렬했을 때, 앞에서부터 K번째 있는 수를 구하는 프로그램을 작성하시오. www.acmicpc.net n, k = input().split() num_list = list(map(int, input().split())) num_list.sort() print(num_list[int(k)-1]) 성공하긴 했는데 메모리가 너무 크다. 다른 풀이도 봤는데 다들 이렇게 푸셨네 ㅎㅎ 근데 정말 파이썬은 n을 입력받는게 의미가 없는듯;
문제출처 - https://www.acmicpc.net/problem/10989 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net 틀린 풀이1 - 메모리 초과 n = int(input()) num_list = [] for i in range(n): temp = int(input()) num_list.append(temp) num_list.sort() for i in num_list: print(i) 처음에는 아무생각없이 풀었다. 틀린 풀이2 - 런타임 에러 n = int(input()) num_list = [0] * 10001 f..
문제출처 - https://www.acmicpc.net/problem/1026 1026번: 보물 첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거나 같은 음이 아닌 정수이다. www.acmicpc.net n = int(input()) a = [int(x) for x in input().strip().split()] b = [int(y) for y in input().strip().split()] range_a = [-1 for _ in range(n)] same_b = [-1 for _ in range(n)] answer = 0 while True:..
문제출처 - https://www.acmicpc.net/problem/1427 1427번: 소트인사이드 첫째 줄에 정렬하고자하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net n = list(input()) n.sort(reverse=True) print(''.join(n)) 입력받을때 list 형식으로 바꿔주면 입력받은 값이 char 단위로 split되어 list에 저장됨 -> ['2', '1', '4', '3']
- Total
- Today
- Yesterday
- 코딩테스트
- 정렬
- hash
- 해시
- programmers
- Permutation
- 딕셔너리
- 힙
- dictionary
- 스택
- SWExpert
- 구현
- 문자열처리
- 프로그래머스
- 완전탐색
- 문자열
- 재귀
- 파이썬
- left join
- 순열
- 우선순위큐
- combination
- 2019 Kakao Blind Recruitment
- C++
- 백준
- Python
- 2020 KAKAO BLIND RECRUITMENT
- SW Expert
- BOJ
- 괄호
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |