![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/cvW8Ff/btrG3JWV9j4/iojeRmigTP6RDigRoeIWQK/img.png)
📚 문제 입력 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🧑🏻💻 풀이 과정 입력..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bS5m3j/btrGRHNhrjf/6dyDKiVEam4D4pKgogliYk/img.png)
📚 문제 입력 첫째 줄에 중덕 고등학교에 있는 반의 수 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..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/HwnYm/btrGLfo45zA/NDu6VpgYIqkzrfeS1fzGsk/img.png)
📚 문제 입력 자연수 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()...
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/mJc8I/btrGtf9SXMK/XNDr64xMnBFSTk0ioVTy8k/img.png)
📚 문제 제한 사항 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()은 힙에서 가장 작은 원소를 삭제 후, 그 값을 리턴해준다...
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/b0vMd6/btrGjcGZ6me/yGs5rhDxJGBuckI9YODmSk/img.png)
📚 문제 제한 사항 1 ≤ s의 길이 ≤ 50 s가 "zero" 또는 "0"으로 시작하는 경우는 주어지지 않습니다. return 값이 1 이상 2,000,000,000 이하의 정수가 되는 올바른 입력만 s로 주어집니다. 입력 예시 1 "one4seveneight" 출력 예시 1 1478 입력 예시 2 "23four5six7" 출력 예시 2 234567 입력 예시 3 "2three45sixseven" 출력 예시 3 234567 입력 예시 4 "123" 출력 예시 4 123 🧑🏻💻 풀이 과정 인덱스의 숫자와 일치하는 문자 배열(alphabets)을 만들자. ('zero'(0), 'one'(1), 'two'(2)...) enumerate를 이용해서 문자 배열의 인덱스와 문자를 반복하며 꺼내오자. 입력받은 s..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/cQHdH8/btrGqIRqN74/13L23ar7jZUBM4RkkvBbl1/img.png)
📚 문제 제한 사항 s는 길이가 1 이상, 100이하인 스트링입니다. 입력 예시 1 "abcde"출력 예시 1 "c"입력 예시 2 "qwer"출력 예시 2 "we"🧑🏻💻 풀이 과정 입력받은 s의 길이를 구하고 반으로 나눈다. 홀수라면 s[mid]를 반환하고, 짝수라면 s[mid-1]과 s[mid-1]를 반환하자. 예: 길이가 5라면 01234, 길이가 6이라면 012345이므로 -1을 포함해야한다. def solution(s): mid = len(s) // 2 if len(s) % 2 == 1: return s[mid] else: return s[mid-1] + s[mid] # 테스트를 위한 코드입니다. s = "abcde" print(solution(s)) s = "qwer" print(solutio..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/ORygh/btrGlh0Pv3Q/gxoh186PFEusGTBmPpzYhk/img.png)
📚 문제 제한 사항 문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다. 첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다. 입력 예시 "try hello world"출력 예시 "TrY HeLlO WoRlD"🧑🏻💻 풀이 과정 주어진 s에서 " "을 기준으로 단어를 분리하자. 단어의 알파벳마다 홀짝을 판단해서 짝수번째라면 대문자로, 홀수번째라면 소문자로 저장하자. 단어마다 마지막에는 " "을 넣었기 때문에 마지막 요소는 pop해주자. 리스트로 저장되어 있기 때문에 그대로 반환하면, ['T', 'r', 'Y', ' ', 'H', 'e', 'L..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bjO9d0/btrGfWp5pdk/LKcFAAf5duCKsUFmYBYGbk/img.png)
📚 문제 입력 첫째 줄에 레벨의 수 N이 주어진다. (1 ≤ N ≤ 100) 다음 N개 줄에는 각 레벨을 클리어하면 얻는 점수가 첫 번째 레벨부터 마지막 레벨까지 순서대로 주어진다. 점수는 20,000보다 작은 양의 정수이다. 출력 첫째 줄에 점수를 몇 번 감소시키면 되는지 출력한다. 입력 예시 1 3 5 5 5출력 예시 1 3입력 예시 2 4 5 3 7 5출력 예시 2 6🧑🏻💻 풀이 과정 뒤에서부터 시작해서 이전 값이 뒤의 값보다 크거나 같다면 while문으로 반복하며, 이전 값을 1씩 감소시키며, 카운트를 증가하자. 5 5 5 -> 5 4 5 -> 3 4 5 n = int(input()) arr = [int(input()) for _ in range(n)] cnt = 0 for idx in rang..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/zbXbM/btrFZFbWw1R/VhEIi690icrWxKKoAFn1v0/img.png)
📚 문제 입력 첫 번째 행은 케이스의 개수, T이다. 다음 행부터는 T개의 케이스들이 나온다. 각 케이스는 블리트릭스가 고른 하나의 숫자 N으로 구성된다. 제한 1 ≤ T ≤ 100. 0 ≤ N ≤ 10^6. 출력 각 케이스에 대해서, 케이스 번호가 x이고 y가 정답일 때, Case #x: y라고 출력해야 한다. 입력 예시 5 0 1 2 11 1692출력 예시 Case #1: INSOMNIA Case #2: 10 Case #3: 90 Case #4: 110 Case #5: 5076힌트 예제 입출력 1번에 대해서, 2 × 0 = 0, 3 × 0 = 0 등등으로 이어지므로, 블리트릭스는 0외에는 다른 숫자를 기록할 수 없을 것이며, 따라서 영원히 잠에 들 수 없다. 예제 입출력 2번의 경우, 1, 2, 3,..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/kM4HG/btrFLB0Q0zg/2LiakRPiAmGEllQB1PkcWK/img.jpg)
코틀린의 scope function이란, 람다를 사용해서 일시적인 영역을 만들어 코드를 더 간결하게 하거나, method chaning에 활용하는 함수를 말한다. 이번에는 코틀린의 scope function에 대해 알아보자! 1. scope function의 분류 2. 언제 어떤 scope function을 사용해야 할까? scope function의 분류 let과 run은 람다의 결과를 반환하고, also와 apply는 객체 그 자체를 반환한다. 아래 예제코드를 살펴보면서 조금 더 쉽게 이해해보자. val person = Person("김성현", 10) // 반환 : age val let = person.let { it.age } val run = person.run { this.age } // 반환 ..
- Total
- Today
- Yesterday
- 구현
- 노마드코더
- mysql 8.0
- 백준
- 코테
- 스프링부트
- Spring
- 릿코드
- 리팩토링
- spring boot
- 코틀린
- leetcode
- 데이터베이스
- 파이썬
- 문자열
- 정렬
- 그리디
- 인프런
- kotlin
- Real MySQL
- 알고리즘
- Algorithm
- webflux
- 스프링
- 북클럽
- 김영한
- 스프링 부트
- 자료구조
- MySQL
- 노마드
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |