일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 알기쉬운 알고리즘
- JSON
- coding test
- 윤성우 열혈자료구조
- 윤성우의 열혈 자료구조
- R
- s
- stream
- 이스케이프 문자
- Serialization
- 메모리구조
- C programming
- Stack
- list 컬렉션
- datastructure
- C 언어 코딩 도장
- buffer
- Algorithm
- 이것이 자바다
- Graph
- Selection Sorting
- 혼자 공부하는 C언어
- insertion sort
- Today
- Total
목록Problem Solving (182)
Engineering Note
문제 https://www.acmicpc.net/problem/11728 [ 11728번: 배열 합치기 첫째 줄에 배열 A의 크기 N, 배열 B의 크기 M이 주어진다. (1 ≤ N, M ≤ 1,000,000) 둘째 줄에는 배열 A의 내용이, 셋째 줄에는 배열 B의 내용이 주어진다. 배열에 들어있는 수는 절댓값이 109보다 작거 www.acmicpc.net ](https://www.acmicpc.net/problem/11728) 문제해결방법 파이썬의 리스트 연산을 하면 쉽게 풀 수 있다. 파이썬에서 리스트+ 리스트를 하면 두 리스트가 이어진 새로운 리스트를 만들 수 있다. 이렇게 새롭게 만들어진 리스트를 정렬하여 출력하면 된다. 코드 import sys a, b = map(int, sys.stdin.rea..
문제 https://www.acmicpc.net/problem/10814 [ 10814번: 나이순 정렬 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 www.acmicpc.net ](https://www.acmicpc.net/problem/10814) 문제해결방법 문제의 정렬 조건대로 문제의 정렬 조건이 나이, 가입순서이므로 (나이,가입순서,이름)순으로 리스트에 저장을 해주고 sort()를 해준다. 문제의 출력조건대로 출력을 해준다. 코드 import sys n = int(sys.stdin.readline().rstrip()) user = [] for i in rang..
문제 https://www.acmicpc.net/problem/1181 [ 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net ](https://www.acmicpc.net/problem/1181) 문제해결방법 문제에서 단어의 정렬 조건을 보면 첫 번째 단어의 길아가 짧은순으로, 그다음 단어의 길이가 같다면 사전순으로 정렬하라고 했다. 리스트에 (단어의길이, 단어)로 저장해주고 sort()를 하면 각 요소의 첫 번째요소를 기준으로 정렬하고 같다면 두 번째 요소를 비교하여 정렬한다. 코드 import s..
문제 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 ](https://www.acmicpc.net/problem/11651) 문제해결방법 파이썬 리스트 내장함수 sort()의 특징을 이용하면 쉽게 풀 수 있다. 파이썬의 리스트의 요소가 하나가 아니라 리스트, 튜플로 저장되어 있으면 각 요소의 순서대로 기준이 되어 정렬한다. 그러므로 x,y를 입력 받고 (y,x) 순으로 정렬해주면 y..
문제 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 ](https://www.acmicpc.net/problem/11650) 문제해결방법 파이썬 리스트 내장함수 sort()를 사용함면 쉽게 풀수 있다. 리스트의 각 요소에 (x,y) 튜플 형태로 저장을 하면 아래와 같다. porint = [(x1,y1),(x2,y2),(x3,y3),(x4,y4)] 이때 point.sort()를 하면 리스..
문제 https://www.acmicpc.net/problem/1427 [ 1427번: 소트인사이드 첫째 줄에 정렬하고자하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net ](https://www.acmicpc.net/problem/1427) 문제해결방법 숫자의 각 자리수에 해당한는 숫자를 리스트에 저장한다. 리스트를 내림차순으로 정렬한다. 정렬된 리스트에서 0번 인덱스부터 res = res* 10 + n[i] 연산을 하면 원하는 숫자가 만들어 지는데 원리는 10진법의 위치기수법에 근간한 연산이다. 코드
문제 https://www.acmicpc.net/problem/1874 [ 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net ](https://www.acmicpc.net/problem/1874) 문제해결방법 1부터 오름차순으로 스택에 순서대로 넣었다가 뽑으면서 문제에 입력으로 주어지는 수열을 만들어야 하는 문제이다. curInNum 입력차례인 숫자를 저장하는 변수에 초기값을1로 저장해주고 스택에 입력이 이루어지면 하나씩 증가시켜..
문제 https://www.acmicpc.net/problem/1929 [ 1929번: 소수 구하기 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. www.acmicpc.net ](https://www.acmicpc.net/problem/1929) 문제해결방법 N이 소수인지 판별하기 위해서는 2부터 N의 반까지 N을 나누어 보면서 나누어 떨어지는 수가 있는지 확인하면 되기 때문에 O(N/2)의 시간복잡도가 걸린다. 반까지만 나누어보면 되는 이유는 N의 반보다 큰수로는 절대로 나누어 떨어질 수 없다. 이유는 나누어 떨어진다는 것은 똑같이 나누어 준다는 것인데 반보다 더 큰 만큼 잘라서 한명에게 ..