일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- beandefinitionstoreexception
- counting elements
- Dijkstra
- springboot
- 2981
- Spring
- 소수
- 프로그래머스
- spring security
- 코딩테스트
- brute force
- Greedy
- 2018 KAKAO BLIND RECRUITMENT
- BFS
- 파이썬
- error
- 탐욕법
- codility
- algorithm
- 백준
- 알고리즘
- API
- applicationeventpublisher
- javascript
- 문자열
- HTTP
- java
- 라이브템플릿
- Python
- 최단경로
- Today
- Total
목록코딩테스트 (6)
Altiora Petamus
문제 평소 반상회에 참석하는 것을 좋아하는 주희는 이번 기회에 부녀회장이 되고 싶어 각 층의 사람들을 불러 모아 반상회를 주최하려고 한다. 이 아파트에 거주를 하려면 조건이 있는데, “a층의 b호에 살려면 자신의 아래(a-1)층의 1호부터 b호까지 사람들의 수의 합만큼 사람들을 데려와 살아야 한다” 는 계약 조항을 꼭 지키고 들어와야 한다. 아파트에 비어있는 집은 없고 모든 거주민들이 이 계약 조건을 지키고 왔다고 가정했을 때, 주어지는 양의 정수 k와 n에 대해 k층에 n호에는 몇 명이 살고 있는지 출력하라. 단, 아파트에는 0층부터 있고 각층에는 1호부터 있으며, 0층의 i호에는 i명이 산다. 입력 첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 ..
Reference https://programmers.co.kr/learn/courses/30/lessons/17678?language=python3 아래 풀이 방법은 제가 푼 방식으로 정해와는 차이가 있을 수 있습니다. 문제 풀이 언뜻 보기엔 쉬워보였지만 문제의 의미나 입출력의 상관관계를 이해하기가 힘들어서 생각보다 오래 걸렸던 것 같다. 해결하기 위한 순서는 다음과 같다. 시간을 비교해주기 위해서 문자열로 된 시간 단위를 분으로 변환한다. 정규식 활용 waiting 이라는 배열을 선언해주고 이 안에 분으로 변환된 시간을 오름차순으로 정렬하여 담아둔다. 셔틀의 운행횟수만큼 반복하면서 대기열에서 차례대로 셔틀에 탑승시킨다. 마지막 셔틀에 자리가 남는다면 콘은 마지막 셔틀의 도착시간에 대기열에 들어가면 된..
Reference 프로그래머스 문제 풀이 제시된 규칙에 맞게 단계별로 풀어나가면 된다. 처음 생각난 것은 정규식을 활용하여 푸는 방법이지만 정규식은 왠지 사용하려고하면 기억이 나질 않는다(...) 기본 new_id의 모든 대문자를 대응되는 소문자로 치환합니다. ⇒ lower() 를 사용하면 간단 new_id에서 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.)를 제외한 모든 문자를 제거합니다. ⇒ isalnum() 과 활용 new_id에서 마침표(.)가 2번 이상 연속된 부분을 하나의 마침표(.)로 치환합니다. ⇒ 반복문을 돌면서 '..' 를 '.' 으로 replace new_id에서 마침표(.)가 처음이나 끝에 위치한다면 제거합니다. new_id가 빈 문자열이라면, new_id에 "a" 를 ..
Reference 백준 1193번 문제풀이 대각방향으로 1, 2, 3, 4, 5개만큼 새로운 분수가 생성된다 ⇒ 14는 10과 15의 사이에 있으므로 14번째 분수는 5열 중 어느 한 곳에 있다. 홀짝을 사용하여 차례를 알 수 있다. 5열은 홀수번째이며, 분모가 1부터 시작해서 1씩 증가한다. 분자는 반대. 위 내용을 코드로 작성한다면 아래와 같이 작성할 수 있다. X = int(input()) totalLine = 0 temp = 0 while X > totalLine: temp += 1 totalLine += temp a = 1 b = temp n = totalLine - X if b % 2 != 0: print(f'{a + n}/{b - n}') else: print(f'{b - n}/{a + n}..

출처 : https://www.acmicpc.net/problem/11047 문제 준규가 가지고 있는 동전은 총 N종류이고, 각각의 동전을 매우 많이 가지고 있다. 동전을 적절히 사용해서 그 가치의 합을 K로 만들려고 한다. 이때 필요한 동전 개수의 최솟값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) 출력 첫째 줄에 K원을 만드는데 필요한 동전 개수의 최솟값을 출력한다. # 예제 입력 10 4200 1 5 10 50 100 500 1000 5000 10000..
백준 2839번 그리디 알고리즘 백준 : https://www.acmicpc.net/problem/2839 문제 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그램 봉지와 5킬로그램 봉지가 있다. 상근이는 귀찮기 때문에, 최대한 적은 봉지를 들고 가려고 한다. 예를 들어, 18킬로그램 설탕을 배달해야 할 때, 3킬로그램 봉지 6개를 가져가도 되지만, 5킬로그램 3개와 3킬로그램 1개를 배달하면, 더 적은 개수의 봉지를 배달할 수 있다. 상근이가 설탕을 정확하게 N킬로그램 배달해야 할 때, 봉지 몇 개를 가져가면 되는지 그 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에..