일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- String
- 따라하며 배우는 C언어
- php
- 생활코딩
- BOJ
- JavaScript
- 백준
- 따배씨
- Algorithm
- 종만북
- Math
- 따라하면서 배우는 C언어
- 인프런
- BFS
- dfs
- server
- Cleancode
- DP
- greedy
- BASIC
- 정수론
- udemy
- programmers
- sorting
- Algospot
- C언어
- web
- graph
- Python
- Today
- Total
목록Algorithm PS/BOJ (113)
몽상실현개발주의

[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] 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..

[BOJ] 2011 / 암호코드 / Python 파이썬 https://www.acmicpc.net/problem/2011 2011번: 암호코드 나올 수 있는 해석의 가짓수를 구하시오. 정답이 매우 클 수 있으므로, 1000000으로 나눈 나머지를 출력한다. 암호가 잘못되어 암호를 해석할 수 없는 경우에는 0을 출력한다. www.acmicpc.net 풀이 암호 코드의 길이와 만들어지는 수에 따라 조건을 달리하여 경우의 수를 구하는 문제이다. 첫번째 자리의 암호 코드는 '0' 이 아닐때 1이 된다 i 번째 자리의 암호 코드 i 번째 숫자가 '0' 이 아닐 시, i-1 번째 경우의 수와 같다. i-1, i 번째 숫자를 두 자리 수인 하나의 숫자로 보았을 때, 10 ~ 26 이라면 i-2 의 경우의 수를 더해준..

[BOJ] 2133 / 타일 채우기 / Python 파이썬 https://www.acmicpc.net/problem/2133 2133번: 타일 채우기 3×N 크기의 벽을 2×1, 1×2 크기의 타일로 채우는 경우의 수를 구해보자. www.acmicpc.net 풀이 경우의 수를 구하고, 점화식을 찾아 풀어 보았다. 블럭 문제의 경우 N 과 N-1 사이의 관계가 명확한 경우의 문제가 많으므로 점화식을 이용하여 간단히 풀 수 있는 것같다. N = 0 -> 1 N = 1 -> 0 N = 2 -> 3 N = 3 -> 0 N = 4 -> 11 N = 5 -> 0 N = 6 -> 41 N = 7 -> 0 1 3 11 41 .... 2 8 30 2 = 1 * 2 8 = (3 + 1) * 2 30 = (11 + 3 + ..