일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 따배씨
- C
- dfs
- BASIC
- Math
- sorting
- 정수론
- Python
- 종만북
- 생활코딩
- JavaScript
- 따라하며 배우는 C언어
- DP
- graph
- Algorithm
- 인프런
- Algospot
- BOJ
- BFS
- web
- greedy
- php
- udemy
- 따라하면서 배우는 C언어
- programmers
- 백준
- String
- server
- Cleancode
- C언어
- Today
- Total
목록Algorithm (156)
몽상실현개발주의
[BOJ] 11652 / 카드 / Python 파이썬 https://www.acmicpc.net/problem/11652 11652번: 카드 준규는 숫자 카드 N장을 가지고 있다. 숫자 카드에는 정수가 하나 적혀있는데, 적혀있는 수는 -262보다 크거나 같고, 262보다 작거나 같다. 준규가 가지고 있는 카드가 주어졌을 때, 가장 많이 가지 www.acmicpc.net 풀이 중복 되는 숫자의 갯수를 처리하기 위하여 Dictionary 를 사용하였다. 그리고 조건에 맞추어 정렬하기 위하여, Dictionary 의 key 와 value 를 tuple 로 받아오는 items() method 와 Lambda 를 사용 하였다. Python Dictionary items() The items() method ret..
[BOJ] 10989 / 수 정렬하기 3 / Python 파이썬 https://www.acmicpc.net/problem/10989 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net 풀이 단순한 숫자 정렬 문제이지만, 입력값 N 의 범위가 10,000,000 까지 여서 단순히 배열에 담게되면 메모리가 초과된다. (메모리가 터져 버린다!) 입력값의 수는 많지만 숫자의 범위가 10,000보다 작거나 같은 자연수 이기 때문에 배열의 index 와 value 를 이용하여 간단히 풀 수 있다. 배열의 index 를 입력된 숫자로, valu..
[BOJ] 10825 / 국영수 / Python 파이썬 https://www.acmicpc.net/problem/10825 10825번: 국영수 첫째 줄에 도현이네 반의 학생의 수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 한 줄에 하나씩 각 학생의 이름, 국어, 영어, 수학 점수가 공백으로 구분해 주어진다. 점수는 1보다 크거나 같고, 1 www.acmicpc.net 풀이 이전 정렬 문제보다 조금 더 복잡한 조건으로 정렬하는 문제이다. 이 문제 또한 lambda 를 이용하여 정렬 조건을 만든후, sort() 에 대입해 주면 간단히 풀 수 있다. import sys N = int(sys.stdin.readline()) studentWithScore = [] for _ in range(N..
[BOJ] 10814 / 나이순 정렬 / Python 파이썬 https://www.acmicpc.net/problem/10814 10814번: 나이순 정렬 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 www.acmicpc.net 풀이 Python 배열의 내부 정렬 함수인 sort() 그리고 lambda 를 이용한 정렬 조건을 사용하여 풀 수 있는 문제이다. 각각 사람에 대한 정보 입력값이 숫자와 문자가 동시에 입력 되었는데, map() 에 lambda 를 이용한 조건을 사용하여 정수로 처리 하였다. import sys N = int(sys.stdin.readline(..
[BOJ] 11651 / 좌표 정렬하기 2 / Python 파이썬 https://www.acmicpc.net/problem/11651 11651번: 좌표 정렬하기 2 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net 풀이 [BOJ] 11651 / 좌표 정렬하기 문제에서 우선 정렬 조건이 y 좌표로 변경된 문제이다. lambda 식을 사용하여 정렬 방식을 지정하면 된다. import sys N = int(sys.stdin.readline()) points = [] for _ in range..
[BOJ] 11650 / 좌표 정렬하기 / Python 파이썬 https://www.acmicpc.net/problem/11650 11650번: 좌표 정렬하기 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net 풀이 [BOJ] 2751 / 수 정렬하기 2 문제와 마찬가지로 파이썬 배열의 정렬 내부 함수를 사용하였다. 파이썬의 정렬 함수의 기본은, 배열의 아이템들의 각 요소들도 오름차순으로 정렬을 해 준다. import sys N = int(sys.stdin.readline()) points..
[BOJ] 2751 / 수 정렬하기 2 / Python 파이썬 https://www.acmicpc.net/problem/2751 2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 풀이 최대 입력이 1000000, 제한시간이 2초인 정렬 문제이다. O(N^2) 인 삽입정렬이나 버블정렬이 아닌 O(NlogN)인 고급 정렬로 풀어야 한다. 하지만, Python 배열 정렬 내부 함수인 sort() 가 O(NlogN) 이므로, 정렬을 직접 구현하지 않고 사용하였다. import sys N = int(sys...
[BOJ] 11052 / 카드 구매하기 / Python 파이썬 https://www.acmicpc.net/problem/11052 11052번: 카드 구매하기 첫째 줄에 민규가 구매하려고 하는 카드의 개수 N이 주어진다. (1 ≤ N ≤ 1,000) 둘째 줄에는 Pi가 P1부터 PN까지 순서대로 주어진다. (1 ≤ Pi ≤ 10,000) www.acmicpc.net 풀이 현재 index 까지의 부분 list 의 모든 경우의 수 중 가장 큰 경우를 구하여, 전체 경우에서의 가장 큰 값의 경우를 구하는 문제이다. [BOJ] 1699 / 제곱수의 합 / Python 파이썬 과 비슷한 유형의 문제 N = int(input()) Cards = [0] + list(map(int, input().split())) d..