일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 파이썬
- web
- codeup
- 프로그래머스
- error
- 토이프로젝트
- react-redux
- 일상
- 스프링
- Redux
- js to ts
- 자료구조
- 백준
- 리덕스장바구니
- 협업
- 정렬
- 알고리즘
- Java
- memory
- 분할메모리할당
- Operating System
- 기초100제
- 타입스크립트
- react
- Spring
- C++
- OS
- 공부
- CPU 스케줄링
- 코드업
- Today
- Total
목록알고리즘 (147)
감자튀김 공장🍟
✔ 문제 ✔ 풀이 🍟 나의 정답 코드 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라는 속성을 줘서 역순(내림차순)으로 정렬이 되게끔 하면 된다.
✔ 문제 ✔ 풀이 numbers = [] for _ in range(5): numbers.append(int(input())) numbers.sort() print(sum(numbers) // 5) print(numbers[2]) ✔ 후기 .sort() 믿고 설치면 안되는데... sort()가 너무 유혹적이다....... ...... ...
✔ 문제 ✔ 풀이 n = int(input()) numbers = [] for _ in range(n): numbers.append(int(input())) numbers = list(set(numbers)) numbers.sort() for i in numbers: print(i) ✔ 설명 numbers 리스트에 정렬할 수들을 입력 받은 후 중복 원소 제거를 위해 list를 set으로 형 변환을 해준다. 파이썬은 따로 삽입 정렬이나, 거품 정렬과 같은 코드를 사용하지 않고 list.sort()를 사용하면 정렬이 되기 때문에 set(numbers)를 다시 리스트로 변경해줘야 한다. 그래서 numbers = list(set(numbers))) 라는 코드를 사용하여 중복 원소를 제거한 list를 만든 후 s..
✔ 문제 ✔ 풀이 n = int(input()) white = [[0 for _ in range(101)] for _ in range(101)] for _ in range(n): x, y = map(int, input().split()) for i in range(x, x+10): for j in range(y, y+10): white[i][j] = 1 ans = 0 for r in white: ans += r.count(1) print(ans) ✔ 설명 1. 흰 도화지는 가로, 세로 100 사이즈로 고정되어 있으며 색종이가 해당 범위를 넘어가지 않기 때문에 0~100까지의 이차원 배열을 생성한다. 2. 색종이의 x, y 좌표를 입력받은 후 색종이의 크기는 가로, 세로 10이기 때문에 for문을 돌면서 ..
✔ 문제 ✔ 풀이 a = [i for i in range(1, 31)] b = [] for i in range(28): b.append(int(input())) none = [] for i in a: if i not in b: none.append(i) print(min(none)) print(max(none)) ✔ 후기 위 코드로 제출했을 때 108ms가 나왔지만 시간을 더 줄일 수 있을까 싶어서 코드를 아래처럼 바꿔봤다. 원래 부분 print(min(none)) print(max(none)) 수정 부분 none.sort() print(none[0]) print(none[1]) 그래도 결과는 똑같이 108ms가 나왔다.