📚 문제 입력 첫째 줄에 문서가 주어진다. 문서의 길이는 최대 2500이다. 둘째 줄에 검색하고 싶은 단어가 주어진다. 이 길이는 최대 50이다. 문서와 단어는 알파벳 소문자와 공백으로 이루어져 있다. 출력 첫째 줄에 중복되지 않게 최대 몇 번 등장하는지 출력한다. 입력 예시 1 ababababa aba 출력 예시 1 2 입력 예시 2 a a a a a a a 출력 예시 2 2 입력 예시 3 ababababa ababa 출력 예시 3 1 입력 예시 4 aaaaaaa aaa 출력 예시 4 3 🧑🏻💻 풀이 과정 주어진 문자열에 target이 되는 문자가 몇 번 반복되는지 구하면 되는 문제이다. count(문자열 내부에서 특정 문자, 또는 문자열이 포함되어 있는지를 카운팅 하여 반환) 함수를 이용하자! s,..
📚 문제 입력 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. 출력 첫째 줄부터 N개의 줄에 점을 정렬한 결과를 출력한다. 입력 예시 5 0 4 1 2 1 -1 2 2 3 3 출력 예시 1 -1 1 2 2 2 3 3 0 4 🧑🏻💻 풀이 과정 sorted를 이용하여 y를 우선 정렬 후, x를 정렬하자 n = int(input()) datas = [list(map(int, input().split())) for _ in range(n)] # y 좌표를 기준으로 오름차순 정렬 # y 좌표가 같다면 x 좌표를 기준으로 ..
📚 문제 입력 첫째 줄에 N이 주어진다. (1 ≤ N ≤ 1000) 출력 상근이가 게임을 이기면 SK를, 창영이가 게임을 이기면 CY을 출력한다. 입력 예시 4 출력 예시 SK 🧑🏻💻 풀이 과정 # 왼쪽부터 순번, 돌 갯수, 현재까지 가져간 돌의 갯수 SK : 1 1 1 CY : 2 3 4 SK : 3 1 5 CY : 4 3 8 SK : 5 1 9 CY : 6 3 12 SK : 7 1 13 CY :8 3 16 위 표를 확인해보면, 상근이는 홀수번째 턴에 돌을 1개씩 가져가고, 창영이는 짝수번째 턴에 돌을 3개씩 가져간다. 이는 곧, 입력(n)이 홀수면 상근이 패배, 짝수면 창영이 패배가 된다. print('SK') if int(input()) % 2 == 0 else print("CY")
📚 문제 입력 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) 출력 첫째 줄에 각 사람이 돈을 인출하는데 필요한 시간의 합의 최솟값을 출력한다. 입력 예시 5 3 1 4 3 2 출력 예시 32 🧑🏻💻 풀이 과정 낮은 순으로 점차 더해야 모든 사람이 돈을 인출하기까지 가장 적은 시간이 나온다. 입력 받은 n의 값을 오름차순 정렬 후, 반복하면서 answer에 계속 더하자. n = int(input()) times = list(map(int, input().split())) times.sort() # 시간이 낮은 순 정렬 answer = 0 for i in range(len(times)): ..
📚 문제 어떠한수 N이 1이 될 때까지 다음의 두 과정 중 하나를 반복적으로 선택하여 수행하려고한다. 단, 두 번째 연산은 N이 K로 나누어떨어질 때만 선택할 수 있다. N에서 1을 뺀다. N을 K로 나눈다. 입력 조건 첫째 줄에 N(2 ~ N ~ 100.000)과 K(2 ~ K ~ 100.000)가 공백으로 구분되며 각각 자연수로 주어진다. 이때 입력으로 주어지는 N은 항상 K보다 크거나 같다. 출력 조건 첫째 줄에 N이 1이 될 때까지 1번 혹은 2번의 과정을 수행해야 하는 횟수의 최솟값을 출력한다. 입력 예시 25 5 출력 예시 2 🧑🏻💻 풀이 과정 n%k의 결과가 0이라면, n을 k로 두 번 나누었을 때 n은 1이 된다. n%k의 결과가 0이 될 때까지 1번 과정을 수행하자. n, k = map..
📚 문제 숫자 카드 게임은 여러 개의 숫자 카드 중에서 가장 높은 숫자가 쓰인 카드 한 장을 뽑는 게임이다. 단, 게임의 룰을 지키며 카드를 뽑아야 하고 룰은 다음과 같다. 숫자가 쓰인 카드들이 N x M형태로 놓여 있다. 이때 N은 행의 개수를 의미하며, M은 열의 개수를 의미한다. 먼저 뽑고자 하는 카드가 포함되어 있는 행을 선택한다. 그다음 선택된 행에 포함된 카드들 중, 가장 숫자가 낮은 카드를 뽑아야 한다. 따라서 처음에 카드를 골라낼 행을 선택할 때, 이후에 해당 행에서 가장 숫자가 낮은 카드를 뽑을 것을 고려히여 최종적으로 가장 높은 숫자의 카드를 뽑을 수 있도록 전략을 세워야한다. 입력 조건 첫째 줄에 숫자 카드들이 놓인 행의 개수 N과 열의 개수 M이 공백을 기준으로 하여 각각 자연수로 ..
문제 백준 5397 - 키로거 코드 test_case = int(input()) for _ in range(test_case): left_stack = [] right_stack = [] data = input() for i in data: if i == '-': if left_stack: left_stack.pop() elif i == '': if right_stack: left_stack.append(right_stack.pop()) else: left_stack.append(i) left_stack.extend(reversed(right_stack)) print(''.join(left_stack))
문제 백준 1966 - 프린터 큐 코드 test_case = int(input()) for _ in range(test_case): n, m = list(map(int, input().split(' '))) queue = list(map(int, input().split(' '))) queue = [(i, idx) for idx, i in enumerate(queue)] count = 0 while True: if queue[0][0] == max(queue, key=lambda x: x[0])[0]: count += 1 if queue[0][1] == m: print(count) break else: queue.pop(0) else: queue.append(queue.pop..
문제 백준 1920 - 수 찾기 코드 n = int(input()) n_list = list(map(int, input().split())) m = int(input()) m_list = list(map(int, input().split())) n_list.sort() def binary_search(value, start, end): if start > end : return False median = (start + end) // 2 if n_list[median] > value: return binary_search(value, start, median-1) elif n_list[median] < value: return binary_search(value, median+1, end) else: r..
- Total
- Today
- Yesterday
- Real MySQL
- 구현
- 코틀린
- 인프런
- 스프링 부트
- mysql 8.0
- 릿코드
- 알고리즘
- 스프링부트
- spring boot
- 자료구조
- Algorithm
- 코테
- 데이터베이스
- 노마드코더
- 그리디
- 리팩토링
- Spring
- 노마드
- 문자열
- MySQL
- 스프링
- 북클럽
- leetcode
- 파이썬
- 정렬
- kotlin
- 백준
- 김영한
- webflux
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |