https://www.acmicpc.net/problem/11003 11003번: 최솟값 찾기 N개의 수 A1, A2, ..., AN과 L이 주어진다. Di = Ai-L+1 ~ Ai 중의 최솟값이라고 할 때, D에 저장된 수를 출력하는 프로그램을 작성하시오. 이때, i ≤ 0 인 Ai는 무시하고 D를 구해야 한다. www.acmicpc.net 문제분류 자료구조, 우선순위큐, 덱 문제분석 정해진 구간 L에 대하여 최솟값을 구하는 문제 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayDeque; import java.util.Deque; impor..
Koala - 7기
https://www.acmicpc.net/problem/2164 2164번: 카드2 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 www.acmicpc.net 문제분석 분류 큐 문제설명 N장의 카드를 입력한다. 1부터 N까지의 수를 큐에 입력한다. Q를 주어진 조건에 맞게 pop,push,pop 활용한다. 입력 6 출력 4 코드 #include #include using namespace std; int main() { queueque; int N; cin >> N; for(int x =1 ; x 1) //1개가 남을 때 까지 { que.pop(); q..
https://www.acmicpc.net/problem/1874 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net 문제 분석 1부터 n까지의 수를 스택에 넣어놓고 입력받은 수열을 만들기 위해 push와 pop연산을 어떻게 수행해야 하는지 출력하는 문제다. push연산을 수행할 땐 +, pop연산을 수행할 땐 -를 출력한다. 입력받은 수열을 만들 수 없는 경우에는 NO를 출력한다. 코드 #include #include #inclu..
https://www.acmicpc.net/problem/17612 17612번: 쇼핑몰 입력의 첫 줄에는 2개의 정수 N(1 ≤ N ≤ 100,000)과 k(1 ≤ k ≤ 100,000)가 주어진다. 다음 줄부터 N개의 줄에 걸쳐 고객 N명의 정보가 줄 맨 앞의 고객부터 맨 뒤 고객까지 순서대로 주어진다. i번째 www.acmicpc.net 문제 분석 시뮬레이션 문제처럼 보이기도 하지만, 조금 고민해보면 실시간으로 고객들이 계산대로 이동했다가 출구로 빠져나가는 것이 아니므로 우선순위 큐를 이용하면 문제를 쉽게 해결할 수 있다는 것을 알 수 있습니다. 차근차근 어디서 어떻게 우선순위 큐를 사용해야 할지 생각해봅시다. 문제 풀이 우선은 계산대를 우선순위 큐로 만들어야 할 것 같습니다. 이 우선순위 큐의 규..
문제 https://www.acmicpc.net/problem/14561 14561번: 회문 n진수는 base가 n인 수를 말한다. 예를 들어 십진수는 base가 10인 수이다. n진수의 수 AmAm-1Am-2…A1A0를 n진수로 표현해보면 AmAm-1Am-2…A1A0 = Am × nm + Am-1 × nm–1 + Am-2 × nm–2 + … + A1 × n1 + A0 × n0이다. www.acmicpc.net 코드 풀이 입력받은 m,n을 이용하여 n진수를 출력한다. 이때 m이 0일 경우 0을 출력한다.
https://www.acmicpc.net/problem/10773 10773번: 제로 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경 www.acmicpc.net 문제분석 0을 입력할 경우 스택에서 하나씩 값을 지운다. 소스코드 k = int(input()) money = list(int(input()) for _ in range(k)) money_list = [0] for i in range(k): if money[i] == 0: money_list.pop() else: money_list.append(money[i]) ..
https://www.acmicpc.net/problem/11068 11068번: 회문인 수 어떤 수를 왼쪽부터 읽어도, 오른쪽부터 읽어도 같을 때 이 수를 회문인 수라고 한다. 예를 들어, 747은 회문인 수이다. 255도 회문인 수인데, 16진수로 표현하면 FF이기 때문이다. 양의 정수를 입력 www.acmicpc.net 10진수를 입력 받고, 그 수를 2~64진수로 바꾼 수가 회문이 되는지를 확인하는 문제이다. 2~64진수로 바꾼 총 63개의 숫자 중 한 개라도 회문이 된다면 1을 출력, 그렇지 않다면 0을 출력하면 된다. 전형적인 회문 문제처럼 리스트에 {입력값%n진수}를 차곡 차곡 담는 방식으로 풀 수 있다. 다만, 문제의 예시처럼 15, 15를 각각 F, F로 바꿔주는 과정은 불필요하다. n진..
17502번: 클레어와 팰린드롬 (acmicpc.net) 17502번: 클레어와 팰린드롬 입력으로 주어진 문자열을 팰린드롬이 되도록 '?' 문자들을 적절한 알파벳 소문자들로 바꾸어 출력합니다. 방법이 여러 가지인 경우 그 중 하나만 출력합니다. www.acmicpc.net 문제분석 분류 구현 문자열 문제설명 입력 출력 소스코드
https://www.acmicpc.net/problem/6236 6236번: 용돈 관리 현우는 용돈을 효율적으로 활용하기 위해 계획을 짜기로 하였다. 현우는 앞으로 N일 동안 자신이 사용할 금액을 계산하였고, 돈을 펑펑 쓰지 않기 위해 정확히 M번만 통장에서 돈을 빼서 쓰기로 www.acmicpc.net 문제분석 현우는 용돈을 효율적으로 활용하기 위해 계획을 짜기로 하였다. 현우는 앞으로 N일 동안 자신이 사용할 금액을 계산하였고, 돈을 펑펑 쓰지 않기 위해 정확히 M번만 통장에서 돈을 빼서 쓰기로 하였다. 현우는 통장에서 K원을 인출하며, 통장에서 뺀 돈으로 하루를 보낼 수 있으면 그대로 사용하고, 모자라게 되면 남은 금액은 통장에 집어넣고 다시 K원을 인출한다. 다만 현우는 M이라는 숫자를 좋아하기..
6236번: 용돈 관리 (acmicpc.net) 6236번: 용돈 관리 현우는 용돈을 효율적으로 활용하기 위해 계획을 짜기로 하였다. 현우는 앞으로 N일 동안 자신이 사용할 금액을 계산하였고, 돈을 펑펑 쓰지 않기 위해 정확히 M번만 통장에서 돈을 빼서 쓰기로 www.acmicpc.net 문제 해석 M번 인출하여 주어진 이용할 금액을 만족하는 K원 중 최소값을 구하는 문제이다. 만약 돈이 남을 경우, 남은 금액을 모두 넣고 다시 K원을 인출해야하므로 즉 하루 이용금액보다 K원이 작으면 안된다. 코드 문제 풀이 이분탐색을 활용하였다. 하루 이용금액은 arr에 저장해주었고 left는 0, right는 1000000000로 지정해주었다. while문안을 살펴보면 중간값을 mid로 지정해주었고 이 mid는 하루..
https://www.acmicpc.net/problem/14582 14582번: 오늘도 졌다 첫 번째 줄에는 9개의 정수가 주어지는데, 오늘 경기에서 울림 제미니스가 1회 초, 2회 초, ..., 9회 초에 낸 득점이 주어진다. 두 번째 줄에도 9개의 정수가 주어지는데, 스타트링크 걸리버스가 1회 www.acmicpc.net 문제 소스 코드 문제 풀이 G팀이 항상 승리하는 경우에서 그것이 역전승이면 "Yes" 아니면 "No" 출력 G팀의 역전승이 되려면 J팀이 점수를 낼 수 있는 9회 '초'까지 J팀의 점수가 앞서는 경우가 한 번 이상 있어야한다. J팀이 앞서는 경우가 있는지 경기의 '초'와 '말' 사이에 if문을 이용하여 확인했다.
https://www.acmicpc.net/problem/16507 16507번: 어두운 건 무서워 첫 번째 줄에는 사진의 크기를 의미하는 정수 R, C (1 ≤ R, C ≤ 1,000)와 사진 일부분의 밝기 평균을 알아볼 개수를 의미하는 정수 Q (1 ≤ Q ≤ 10,000)가 주어진다. 다음 R개의 줄에 걸쳐 R×C 크기의 사 www.acmicpc.net 문제분석 분류 누적 합 문제설명 R x C 크기의 사진이 주어질 때, 사진의 일부분에 해당하는 밝기 평균을 구한다. 입력: 첫 번째 줄에는 사진의 크기를 의미하는 정수 R, C(1 ≤ R, C ≤ 1,000)와 사진 일부분의 밝기 평균을 알아볼 개수를 의미하는 정수 Q(1 ≤ Q ≤ 10,000)가 주어진다. 다음 R개의 줄에 걸쳐 R x C 크기의..