일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 종만북
- Cleancode
- graph
- JavaScript
- udemy
- Algospot
- 따라하면서 배우는 C언어
- sorting
- greedy
- DP
- String
- BASIC
- programmers
- BOJ
- 백준
- C
- 인프런
- Math
- web
- server
- 정수론
- Python
- Algorithm
- BFS
- dfs
- 생활코딩
- php
- 따라하며 배우는 C언어
- 따배씨
- C언어
- Today
- Total
목록Algorithm PS (127)
몽상실현개발주의
[BOJ] 10799 / 쇠막대기 / Python 파이썬 https://www.acmicpc.net/problem/10799 10799번: 쇠막대기 여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레이저 www.acmicpc.net 풀이 [BOJ] 9012 / 괄호 문제의 응용이다. 쇠막대기를 표현한 괄호를 각각 여는 괄호"(" : +1 닫는괄호 ")" : -1 겹치지는 쇠막대기 갯수를 카운팅 해주었다. "()" 를 찾아 레이저 절단 위치를 찾아 잘라진 조각을 더해주고, 조각이 끝나는 부분에서 잘려진 쇠막대 조각이 하나 더 생기는 것을 추가로 더해주었다. pipe = input(..
[BOJ] 9012 / 괄호 / Python 파이썬 https://www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net 풀이 괄호는 여는 괄호인 "(" 와 닫는 괄호인 ")" 의 개수와 괄호의 구성이 맞는 VPS 를 찾는 문제이다. "(" 가 나오면 +1 을 ")" 가 나오면 -1 을 해주는 방법으로 여는 괄호와 닫는 괄호의 수를 맞추어주고, 모든 괄호가 끝나는 경우에 합이 0이 되는 경우에만 "YES" 를 출력하면 된다. N = i..
[BOJ] 10828 / 스택 / Python 파이썬 https://www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 풀이 Stack 을 구현하는 문제이다. Python 의 List 를 활용하면 된다. import sys N = int(sys.stdin.readline()) stack = [] for _ in range(N): order = sys.stdin.readline().split() if order[0] == 'push': stack..
[BOJ] 11004 / K 번째 수 / Python https://www.acmicpc.net/problem/11004 11004번: K번째 수 수 N개 A1, A2, ..., AN이 주어진다. A를 오름차순 정렬했을 때, 앞에서부터 K번째 있는 수를 구하는 프로그램을 작성하시오. www.acmicpc.net 풀이 Python 의 정렬을 사용하면 간단히 풀리는 문제이다. import sys N, K = map(int, sys.stdin.readline().split()) nums = list(map(int, sys.stdin.readline().split())) nums.sort() print(nums[K-1])
[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(..