📚 문제 입력 출력 예제 입력 5 5 1 1 4 1 2 2 3 2 4 3 4예제 출력 1 4 3 2 0🧑🏻💻 풀이 과정 입력받은 graph로 dfs를 호출하자. 방문한 v에 대해서는 visited[v]를 True로 변경하고, 방문 순서를 answer[v]에 저장하자. (visited[4] = 2, visited[3] = 3, visited[2] = 4) 방문 순서는 내림차순이므로, graph를 내림차순 정렬하자. graph[v]의 노드를 반복하며, 방문하지 않은 노드를 발견하면, cnt를 1 증가 시키고, 해당 노드를 재귀 호출하자. 재귀호출이 끝나면, answer에 저장된 값을 반복하면서 출력하자. import sys sys.setrecursionlimit(10 ** 8) def dfs(v): glo..
📚 문제 입력 출력 예제 입력 1 6 3 2 2예제 출력 1 5예제 입력 2 2 2 1 1예제 출력 2 3🧑🏻💻 풀이 과정 n개의 화분을 k만큼의 수분을 갖도록 초기화 하자. 화분의 수분이 0이 아닐 동안, 반복하면서 a개의 화분에 b씩 물을 주자. 모든 화분의 수분을 1씩 감소시키자. 화분의 수분이 적은 순으로 정렬하자.(그래야 매 반복마다 제일 수분이 적은 a개의 화분에 b씩 수분을 줄 수 있음.) day를 1 증가시키자. def watering(n, k, a, b): arr = [k] * n day = 0 while 0 not in arr: # A개의 화분에 B씩 물주기 for i in range(a): arr[i] += b # 모든 화분의 수분이 1씩 감소 for i in range(len(ar..
📚 문제 입력 출력 입력 예시 3 40 30 30출력 예시 140🧑🏻💻 풀이 과정 입력받은 levels를 내림차순 정렬하자. levels[0]과 levels[1] 중, 큰 값을 max_level에 저장해놓자. (첫 번째 값이 가장 크긴하겠지만..) levels[0]과 levels[1]의 합을 gold에 저장해놓자. 2부터 level의 길이까지 반복하면서, 저장 해놓은 max_level과 현재 레벨의 합을 gold에 더하자. def marble(levels): # levels[0]과 levels[1] 중, 큰 값을 저장해놓자. max_level = max(levels[0:2]) # levels[0]과 levels[1]의 합 저장. gold = sum(levels[0:2]) # 처음 두 레벨을 제외하고, ..
📚 문제 입력 출력 입력 예시 8 sbrus.txt spc.spc acm.icpc korea.icpc sample.txt hello.world sogang.spc example.txt출력 예시 icpc 2 spc 2 txt 3 world 1🧑🏻💻 풀이 과정 n만큼 반복하면서, 입력받은 문자에서 확장자명만 저장하자. 확장자명이 딕셔너리에 없으면 key=확장자명, value=0으로 초기화하고 +1, 있으면 그냥 +1 확장자명을 오름차순 정렬 후, 출력하자. def file_clean(n): ans = {} for _ in range(n): # 입력받은 문자에서 확장자만 저장하자. split_s = input().split(".")[1] # 확장자가 없으면 0으로 초기화한 후 1 더하고, 있으면 그냥 1 더..
📚 문제 입력 출력 제한 입력 예시 2 21 22 23 24 25 26출력 예시 1🧑🏻💻 풀이 과정 입력받은 energy를 오름차순 정렬하자. 정렬된 리스트의 n번째 요소부터 n+n-1번째까지 요소를 가져 오자. 가져온 리스트의 가장 큰 값에서 가장 작은 값을 빼주자. def calculate_young_energy(energy): # 에너지 오름차순 정렬 후, 중간 값 가져오자. # n = 2면 4까지 -> 2, 3, n = 3이면, 6까지 -> 3,4,5 sorted_energy = sorted(energy)[n:n + n] # 리스트에서 가장 큰 값 - 가장 작은 값 return max(sorted_energy) - min(sorted_energy) n = int(input()) arr = lis..
📚 문제 입력 출력 입력 예시 1 4 2 1 2 2 3출력 예시 1 4 3입력 예시 2 2 1 5 5출력 예시 2 0 0🧑🏻💻 풀이 과정 입력받은 초콜릿 개수를 오름차순 정렬하자. 반복하면서 현재 초콜릿 개수가 이전 초콜릿 개수와 같거나 크고, 가장 작은 초코릿 개수보다 크다는 조건이 만족된다면 현재 초콜릿 개수가 이전 초콜릿 개수와 같아질 때 까지 줄여주자. while문이 끝나면 day를 1 증가시켜주자. def take_away_chocolate(chocolate): day = 0 cnt = 0 min_chocolate_cnt = min(chocolate) for i in range(1, len(chocolate)): # 현재 초콜릿 개수가 이전 초콜릿 개수와 같거나 크고, 가장 작은 초코릿 개수보..
📚 문제 입력 8개 줄에 걸쳐서 각 문제에 대한 참가자의 점수가 주어진다. 점수는 0보다 크거나 같고, 150보다 작거나 같다. 모든 문제에 대한 점수는 서로 다르다. 입력으로 주어지는 순서대로 1번 문제, 2번 문제, ... 8번 문제이다. 출력 첫째 줄에 참가자의 총점을 출력한다. 둘째 줄에는 어떤 문제가 최종 점수에 포함되는지를 공백으로 구분하여 출력한다. 출력은 문제 번호가 증가하는 순서이어야 한다. 입력 예시 1 20 30 50 48 33 66 0 64출력 예시 1 261 3 4 5 6 8입력 예시 2 20 0 50 80 77 110 56 48출력 예시 2 373 3 4 5 6 7입력 예시 3 20 30 50 80 110 11 0 85출력 예시 3 355 2 3 4 5 8🧑🏻💻 풀이 과정 입력..
📚 문제 입력 첫째 줄에 중덕 고등학교에 있는 반의 수 K (1 ≤ K ≤ 100)가 주어진다. 다음 K개 줄에는 각 반의 학생수 N (2 ≤ N ≤ 50)과 각 학생의 수학 성적이 주어진다. 시험 성적은 0보다 크거나 같고, 100보다 작거나 같은 정수이고, 공백으로 나누어져 있다. 출력 각 반에 대한 출력은 다음과 같이 두 줄로 이루어져 있다. 첫째 줄에는 "Class X"를 출력한다. X는 반의 번호이며 입력으로 주어진 순서대로 1부터 증가한다. 둘째 줄에는 가장 높은 점수, 낮은 점수, 성적을 내림차순으로 정렬했을 때 가장 큰 인접한 점수 차이를 예제 출력과 같은 형식으로 출력한다. 입력 예시 2 5 30 25 76 23 78 6 25 50 70 99 70 90출력 예시 Class 1 Max 78..
📚 문제 입력 자연수 n (1 ≤ n ≤ 100,000)과 한 자리 숫자 d(0~9)가 첫째 줄에 주어진다. 출력 첫째 줄에 빈도수를 출력한다. 입력 예시 1 11 1출력 예시 1 4입력 예시 2 100 3출력 예시 2 20🧑🏻💻 풀이 과정 1부터 입력받은 n까지 1씩 증가시키다가 d가 포함된 숫자를 발견하면, 빈도수를 증가시키자. 이때, 숫자가 두 자릿수 이상이면 문자로 변환하여 count함수의 결과 값만큼 더하고, 한 자릿수면 그냥 1을 더하자. list(str(i)) : 10이면 ['1', '0']으로 변환되고, 11이면 ['1', '1']으로 변환된다. import sys n, d = map(int, sys.stdin.readline()...
📚 문제 제한 사항 scoville의 길이는 2 이상 1,000,000 이하입니다. K는 0 이상 1,000,000,000 이하입니다. scoville의 원소는 각각 0 이상 1,000,000 이하입니다. 모든 음식의 스코빌 지수를 K 이상으로 만들 수 없는 경우에는 -1을 return 합니다. 입력 예시 [1, 2, 3, 9, 10, 12], 7출력 예시 2🧑🏻💻 풀이 과정 heapq를 사용해야한다. (이진 트리(binary tree) 기반의 최소 힙 자료구조) heapq에서 가장 작은 값이 K와 같거나, 클 동안 반복하자. 입력받은 scoville을 내림차순 정렬 후, heapify()를 이용하여 리스트를 힙으로 변환하자. heappop()은 힙에서 가장 작은 원소를 삭제 후, 그 값을 리턴해준다...
- Total
- Today
- Yesterday
- 자료구조
- 김영한
- spring boot
- 스프링 부트
- Spring
- mysql 8.0
- 데이터베이스
- 정렬
- 스프링부트
- 코틀린
- 릿코드
- 인프런
- 리팩토링
- 코테
- 알고리즘
- leetcode
- MySQL
- 노마드코더
- 백준
- 그리디
- 북클럽
- Real MySQL
- webflux
- 노마드
- Algorithm
- 구현
- 스프링
- 파이썬
- 문자열
- kotlin
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |