일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 리덕스장바구니
- react-redux
- Java
- 파이썬
- Redux
- web
- react
- 공부
- 일상
- js to ts
- 프로그래머스
- OS
- 스프링
- 타입스크립트
- C++
- memory
- error
- 협업
- 알고리즘
- Spring
- 백준
- Operating System
- 분할메모리할당
- 기초100제
- codeup
- 자료구조
- 토이프로젝트
- CPU 스케줄링
- 정렬
- 코드업
- Today
- Total
목록파이썬 (157)
감자튀김 공장🍟
✔ 문제 ✔ 풀이 n = int(input()) members = [list(map(str, input().split())) for _ in range(n)] members.sort(key=lambda x: int(x[0])) for i in members: print(*i) ✔ 설명 members[i][0] 을 기준으로 정렬한다. 만약 나이가 같다면 먼저 가입한 순으로 정렬이 되야하는데 굳이 이를 위해 따로 정렬을 할 필요는 없다. 이미 가입한 순으로 정렬이 되어있는 셈이기 떄문이다.
✔ 문제 ✔ 풀이 😂 나의 정답 코드 (1540ms) import sys input = sys.stdin.readline n = int(input()) s = [] s_len = [] for i in range(n): x = input().rstrip() if x in s: continue s.append(x) s_len.append([x, len(x)]) s_len.sort(key=lambda x: (x[1], x[0])) for i in s_len: print(i[0]) 굳이 s의 길이만 저장한 리스트를 따로 만들고 그걸 또 lambda로 정렬했다 sys를 쓰면 뭐합니까,, 느린걸요..? 1540ms 나온거 보고 진짜 눈이 튀어나올 뻔 😉 다른 정답 코드 (208ms) n = int(input()) ..
✔ 문제 ✔ 풀이 import sys input = sys.stdin.readline n = int(input()) nums = [list(map(int, input().split())) for _ in range(n)] nums.sort(key=lambda x: (x[1], x[0])) for i in nums: print(*i, end=' ') print() ✔ 설명 11650이랑 비슷한 문제이다. 이제 x좌표를 기준으로 정렬하는 것이 아니라 y좌표를 기준으로 정렬하는 것이기 때문에 nums.sort(key=lambda x: (x[1], x[0])) 을 사용한다. y좌표가 같을 경우에는 x좌표가 증가하는 순서로 정렬하기 때문에 x:x[1]이 아니라 x:(x[1], x[0])을 사용하면 된다.
✔ 문제 ✔ 풀이 🥐 나의 정답 코드 import sys input = sys.stdin.readline n = int(input()) nums = [list(map(int, input().split())) for _ in range(n)] nums.sort(key=lambda x: (x[0], x[1])) for i in nums: print(*i, end=' ') print() 🍛 다른 정답 코드 n = int(input()) number_list = [list(map(int, input().split())) for _ in range(n)] number_list.sort() for i, j in number_list: print(i, j) ✔ 후기 이차원 배열 정렬은 lamda을 이용하는 방법이 있..
✔ 문제 ✔ 풀이 🍟 나의 정답 코드 import sys input = sys.stdin.readline n = list(map(str, input().rstrip())) for i in range(len(n)): n[i] = int(n[i]) n.sort(reverse=True) s = '' for i in n: s += str(i) print(s) 🍙 다른 사람 코드 number = list(map(int, str(input()))) number.sort(reverse=True) print(''.join(map(str, number))) ✔ 설명 1. 연속된 숫자를 map, list를 사용해 str로 입력 받은 후 이를 int형으로 형 변환을 한다. 2. int로 형 변화된 list를 sort(rev..
✔ 문제 ✔ 풀이 🍩 오답 코드 (로직 실수) import sys from collections import Counter input = sys.stdin.readline n = int(input()) nums = [] for _ in range(n): nums.append(int(input())) nums.sort() count = Counter(nums).most_common() count.sort(key=lambda x: -x[1]) median = 0 if len(count) > 1: median = count[1][1] else: median = count[0][1] print(round(sum(nums) / n)) print(nums[n//2]) print(median) print(max(nu..
✔ 문제 ✔ 풀이 🍣 틀린 코드 (메모리 초과) import sys input = sys.stdin.readline n = int(input()) nums = [] for _ in range(n): nums.append(int(input())) max_num = max(nums) count = [0] * (max_num + 1) sorted_nums = [] for i in nums: count[i] += 1 for i in range(max_num + 1): for _ in range(count[i]): sorted_nums.append(i) for i in sorted_nums: print(i) 계수 정렬을 사용하라길래 사용해봤더니 메모리 초과가 떴다 (〃⌒▽⌒〃)ゝ 🍔 정답 코드 import sys..
✔ 문제 ✔ 풀이 n = int(input()) nums = [] for _ in range(n): nums.append(int(input())) nums.sort() for i in nums: print(i) ✔ 후기 파이썬은... sort()가.. 있다...! 그래도 sort()말고 정렬하는 방법은 아는 게 훨씬 낫다.
✔ 문제 ✔ 풀이 n, k = map(int, input().split()) score = list(map(int, input().split())) score.sort(reverse=True) print(score[k-1]) ✔ 설명 score.sort()를 하게 되면 오름차순으로 정렬이 되는데 reverse=True라는 속성을 줘서 역순(내림차순)으로 정렬이 되게끔 하면 된다.