본문 바로가기

# 소쿠리 개발 공부방

(18)
[TDD] 테스트 주도 개발 시작하기 (최범균) 테스트 주도 개발 시작하기 (최범균) 테스트 주도 개발(Test-Driven Development, TDD) 대한 입문서
[BAEKJOON] [2230] 수고르기: PYTHON [2230] 수고르기 2230번: 수 고르기 N개의 정수로 이루어진 수열 A[1], A[2], …, A[N]이 있다. 이 수열에서 두 수를 골랐을 때(같은 수일 수도 있다), 그 차이가 M 이상이면서 제일 작은 경우를 구하는 프로그램을 작성하시오. 예를 들어 www.acmicpc.net Input 첫째 줄에 두 정수 N, M 둘째 줄에 다음 N개의 줄에는 차례로 A[1], A[2], …, A[N] 제한 1 ≤ N ≤ 100,000 0 ≤ M ≤ 2,000,000,000 0 ≤ |A[i]| ≤ 1,000,000,000 Output 첫째 줄에 M 이상이면서 가장 작은 차이를 출력 ✨ Solve 투포인터 수열 오름차순 정렬 answer 초기값 nt(2e9) 두 수의 차이가 M 이상이면서 제일 작은 수를 비교한..
[BAEKJOON] [1806] 부분합: PYTHON [1806] 부분합 1806번: 부분합 첫째 줄에 N (10 ≤ N < 100,000)과 S (0 < S ≤ 100,000,000)가 주어진다. 둘째 줄에는 수열이 주어진다. 수열의 각 원소는 공백으로 구분되어져 있으며, 10,000이하의 자연수이다. www.acmicpc.net Input 첫째 줄: N (10 ≤ N < 100,000), S (0 < S ≤ 100,000,000) 둘째 줄: 수열, 수열의 각 원소는 공백으로 구분되어져 있으며, 10,000이하의 자연수 Output 첫째 줄에 구하고자 하는 최소의 길이를 출력, 합을 만드는 것이 불가능 하다면 0 출력 ✨ Solve 투포인터 사용해서 sum 값이 S보다 작은 값들을 구한뒤, 길이 min()으로 비교 💻 Code ### 언어 python3,..
[BAEKJOON] [18870] 좌표 압축: PYTHON [18870] 좌표 압축 18870번: 좌표 압축 수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표 Xj의 개수와 같아야 한다. X1, X2, ..., XN에 www.acmicpc.net Input 첫째 줄에 N 둘째 줄에는 공백 한 칸으로 구분된 X1, X2, ..., XN Output Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족 첫째 줄에 X'1, X'2, ..., X'N을 공백 한 칸으로 구분해서 출력 ✨ Solve 입력값 중복제거, 정렬 후 새로운 인덱스 출력 💻 Code ### 언어 python3, 메모리 154800KB, 시간 1960ms n =..
[BAEKJOON] [10816] 숫자카드2: PYTHON [10816] 숫자카드2 10816번: 숫자 카드 2 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,0 www.acmicpc.net Input 첫째 줄: 숫자 카드의 개수 N(1 ≤ N ≤ 500,000) 둘째 줄: 숫자 카드에 적혀있는 정수 셋째 줄: M(1 ≤ M ≤ 500,000) 넷째 줄: 상근이가 몇 개 가지고 있는 숫자 카드인지 구해야 할 M개의 정수 Output M개의 수에 대해서, 각 수가 적힌 숫자 카드를 상근이가 몇 개 가지고 있는지를 공백으로 구분해 출력 ✨ Solve 세야 하는 숫자, 개수로 이루어진 dict 생..
[BAEKJOON] [1920] 수 찾기: PYTHON [1920] 수 찾기 1920번: 수 찾기 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들 www.acmicpc.net Input 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000) 다음 줄에는 N개의 정수 A[1], A[2], …, A[N] 다음 줄에는 M(1 ≤ M ≤ 100,000) 다음 줄에는 M개의 수 이 수들이 A안에 존재하는가? 모든 정수의 범위는 -231 보다 크거나 같고 231보다 작음 Output M개의 줄에 답을 출력 (존재하면 1을, 존재하지 않으면 0을 출력) ✨ Solve set(): ..
[BAEKJOON] [2751] 수 정렬하기2: PYTHON [2751] 수 정렬하기2 2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net Input 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000) 둘째 줄부터 N개의 줄에는 수 이 수는 절댓값이 1,000,000보다 작거나 같은 정수, 중복되지 않음 Output 첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과 ✨ Solve 리스트 정렬 list.sort() list = sorted(list) sys.stdin.readline() 개행문자 포함한 입력값을 리턴하지만 더 빠름 💻 Code ### 언어 ..
[BAEKJOON] [11728] 배열 합치기: PYTHON [11728] 배열 합치기 11728번: 배열 합치기 첫째 줄에 배열 A의 크기 N, 배열 B의 크기 M이 주어진다. (1 ≤ N, M ≤ 1,000,000) 둘째 줄에는 배열 A의 내용이, 셋째 줄에는 배열 B의 내용이 주어진다. 배열에 들어있는 수는 절댓값이 109보다 작거 www.acmicpc.net Input 첫째 줄에 배열 A의 크기 N, 배열 B의 크기 M이 주어진다. (1 ≤ N, M ≤ 1,000,000) 둘째 줄에는 배열 A의 내용이, 셋째 줄에는 배열 B의 내용이 주어진다. 배열에 들어있는 수는 절댓값이 109보다 작거나 같은 정수이다. Output 첫째 줄에 두 배열을 합친 후 정렬한 결과를 출력한다. ✨ Solve 리스트 합치기 list1 + list2 리스트 정렬 sorted(li..