백준 38

[백준] 줄줄이 박수 (JS)

문제https://www.acmicpc.net/problem/29718오늘은 많은 학생이 기다리던 브실브실 학교의 축제 행사 날이다.브실이는 학교 축제 담당자로서 축제의 분위기가 잘 살아날 수 있도록 무대 앞에 N행 M열로 의자를 하나씩 배치해 두고 각 의자에 응원단 사람을 1명씩 뒀다.브실이는 응원단의 사기를 확인하기 위해 연속된 A개 열 중 가장 박수 횟수가 많은 곳을 찾고자 한다. 즉, 1열부터 A열, 2열부터 A+1열, 3열부터 A+2열, ⋯, M−A+1열부터 M열에 대해 각 구간에 속하는 응원단 사람들에게 박수를 치게 해서 그중 가장 많이 박수를 친 구간의 박수 횟수를 찾고자 한다.하지만 브실이는 지금 학교 축제 담당자로서 할 일이 많아 이 일은 우리에게 맡기고 다른 일을 하러 갔다.각 응원단 ..

코딩테스트 2025.05.15

[백준] 문자열 교환 (JS)

문제https://www.acmicpc.net/problem/1522a와 b로만 이루어진 문자열이 주어질 때, a를 모두 연속으로 만들기 위해서 필요한 교환의 회수를 최소로 하는 프로그램을 작성하시오.이 문자열은 원형이기 때문에, 처음과 끝은 서로 인접해 있는 것이다.예를 들어, aabbaaabaaba이 주어졌을 때, 2번의 교환이면 a를 모두 연속으로 만들 수 있다.입력첫째 줄에 문자열이 주어진다. 문자열의 길이는 최대 1,000이다.출력첫째 줄에 필요한 교환의 회수의 최솟값을 출력한다.풀이1. 먼저, 문자열 내에 있는 'a'의 개수를 센다. 이는 연속으로 만들고자 하는 'a'의 총 개수이다.2. 문자열이 원형이므로, 처음과 끝이 이어질 수 있도록 문자열을 뒤에 이어 붙인다.3. 이어 붙인 문자열에..

코딩테스트 2025.05.12

[백준] 우당탕탕 영화예매 (JS)

문제https://www.acmicpc.net/problem/29700도은이는 동아리 문화의 날을 맞이하여 동아리원들과 함께 좌석이 M행 N열의 직사각형 모양으로 배치되어 있는 영화관에서 영화를 보기로 했다. 도은이는 동아리원의 유대감을 중요하게 생각하기 때문에 이미 예매가 완료된 좌석을 피해 동아리원들이 모두 가로로 이어서 앉을 수 있도록 자리를 예매하고 싶어 한다. 도은이를 도와 모든 동아리원들이 가로로 이어서 앉을 수 있도록 예매하는 경우의 수는 총 몇 가지가 있을지 구해보자. 단, 예매한 좌석은 동일하지만, 각 사람이 앉는 위치만 바뀌는 경우는 한 가지로 본다.입력첫째 줄에 영화관 세로줄의 개수 N(1≤N≤1000)과 가로줄의 개수 M(1≤M≤5000), 영화를 관람할 동아리원의 수 K(1≤K≤1..

코딩테스트 2025.05.09

[백준] 수열 (JS)

문제https://www.acmicpc.net/problem/2559매일 아침 9시에 학교에서 측정한 온도가 어떤 정수의 수열로 주어졌을 때, 연속적인 며칠 동안의 온도의 합이 가장 큰 값을 알아보고자 한다. 예를 들어, 아래와 같이 10일 간의 온도가 주어졌을 때, 3 -2 -4 -9 0 3 7 13 8 -3 모든 연속적인 이틀간의 온도의 합이 가장 큰 값은 21이다. 매일 측정한 온도가 정수의 수열로 주어졌을 때, 연속적인 며칠 동안의 온도의 합이 가장 큰 값을 계산하는 프로그램을 작성하시오.입력첫째 줄에는 두 개의 정수 N과 K가 한 개의 공백을 사이에 두고 순서대로 주어진다. 첫 번째 정수 N은 온도를 측정한 전체 날짜의 수이다. N은 2 이상 100,000 이하이다. 두 번째 정수 K는 합을 구..

코딩테스트 2025.05.02

[백준] 귀여운 라이언 (JS)

문제https://www.acmicpc.net/problem/15565꿀귀 라이언 인형과, 마찬가지로 꿀귀인 어피치 인형이 N개 일렬로 놓여 있다. 라이언 인형은 1, 어피치 인형은 2로 표현하자. 라이언 인형이 K개 이상 있는 가장 작은 연속된 인형들의 집합의 크기를 구하여라.입력첫 줄에 N과 K가 주어진다. (1 ≤ K ≤ N ≤ 106)둘째 줄에 N개의 인형의 정보가 주어진다. (1 또는 2)출력K개 이상의 라이언 인형을 포함하는 가장 작은 연속된 인형들의 집합의 크기를 출력한다. 그런 집합이 없다면 -1을 출력한다.풀이1. 라이언 인형의 인덱스만 따로 저장한다.2. 라이언 인형이 K개 미만일 경우, -1을 출력한다.3. 저장된 인덱스를 기반으로, K개씩 슬라이딩 윈도우를 이동시키며 각 구간의 길이..

코딩테스트 2025.05.01

[백준] 소가 길을 건너간 이유 5 (JS)

문제https://www.acmicpc.net/problem/14465농부 존의 농장에 원형 길이 있다고 했지만, 길은 그뿐만이 아니다. 그 옆에 일자형 길이 있는데, 1번부터 N번까지의 번호가 붙은 횡단보도 N (1 ≤ N ≤ 100,000)개로 이루어져 있다. 교통사고를 방지하기 위해 존은 각 횡단보도에 신호등을 설치해 놓았다. 그러던 어느 날, 강력한 뇌우로 인해 몇몇 신호등이 망가졌다. 존은 연속한 K개의 신호등이 존재하도록 신호등을 수리하고 싶다. 이번에도 우리가 존을 도와주자.입력첫 줄에 N, K, B (1 ≤ B,K ≤ N)가 주어진다. 그 다음 B줄에는 고장난 신호등의 번호가 하나씩 주어진다.출력정상적으로 작동하는 연속 K개의 신호등이 존재하려면 최소 몇 개의 신호등을 수리해야 하는지 출력..

코딩테스트 2025.04.29

[백준] blobyum (JS)

문제https://www.acmicpc.net/problem/24499오늘도 블롭은 배고프다. 그래서 블롭은 요리사 연우를 찾아가 맛있는 것을 달라고 부탁했다.연우는 귀여운 블롭에게 이왕이면 맛있는 음식을 해 주고 싶었기에, 자신이 만드는 데에 가장 뛰어난 애플파이를 만들기로 하였다. 연우는 N개의 애플파이를 만들었으며, 이를 원 모양으로 책상에 배치해 놓았다.각 애플파이는 하나의 양의 정수로 표현되며, 이는 맛있는 정도를 의미한다. (수가 클수록 더 맛있는 애플파이이다.)블롭은 N개의 애플파이 중 K개를 먹으려고 한다. 물론 블롭은 힘을 들이지 않고 먹고 싶기 때문에, 연속으로 배치되어 있는 K개의 애플파이를 먹으려 한다.블롭을 도와서 블롭이 먹을 애플파이의 맛의 합의 최댓값을 구해 주자!입력첫째 줄에..

코딩테스트 2025.04.28

[백준] 발머의 피크 이론 (JS)

문제https://www.acmicpc.net/problem/27496발머의 피크 이론이란 혈중 알코올 농도 C가 (0.129≤C≤0.138)일때 초인적인 프로그래밍 능력을 가지게 된다는 이론이다. 기령이는 발머의 피크 이론 신봉자이기 때문에 지금부터 코딩테스트를 볼 때까지 혈중 알코올 농도를 최대한 지키려고 한다. 기령이는 매 시간마다 정해진 술을 섭취하며, 섭취한 알코올은 일정 시간이 지나면 분해된다. 기령이가 지금부터 코딩테스트를 볼 때까지 얼마나 혈중 알코올 농도를 0.129와 0.138 사이로 지킬 수 있는지 알아내보자. 단, 혈중 알코올 농도 증가량은 술에 포함된 알코올의 양 A×0.001로 계산하며 최초의 혈중 알코올 농도는 0이다.입력첫째 줄에 코딩테스트를 볼 때까지 남은 시간 N(1≤N≤..

코딩테스트 2025.04.27

[백준] 블로그 (JS)

문제https://www.acmicpc.net/problem/21921찬솔이는 블로그를 시작한 지 벌써 N일이 지났다.요즘 바빠서 관리를 못 했다가 방문 기록을 봤더니 벌써 누적 방문 수가 6만을 넘었다. 찬솔이는 X일 동안 가장 많이 들어온 방문자 수와 그 기간들을 알고 싶다.찬솔이를 대신해서 X일 동안 가장 많이 들어온 방문자 수와 기간이 몇 개 있는지 구해주자.입력첫째 줄에 블로그를 시작하고 지난 일수 N와 X가 공백으로 구분되어 주어진다.둘째 줄에는 블로그 시작 1일차부터 N일차까지 하루 방문자 수가 공백으로 구분되어 주어진다.출력첫째 줄에 X일 동안 가장 많이 들어온 방문자 수를 출력한다. 만약 최대 방문자 수가 0명이라면 SAD를 출력한다.만약 최대 방문자 수가 0명이 아닌 경우 둘째 줄에 기..

코딩테스트 2025.04.23

[백준] 스택 2 (JS)

문제https://www.acmicpc.net/problem/28278정수를 저장하는 스택을 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오.명령은 총 다섯 가지이다.1 X: 정수 X를 스택에 넣는다. (1 ≤ X ≤ 100,000)2: 스택에 정수가 있다면 맨 위의 정수를 빼고 출력한다. 없다면 -1을 대신 출력한다.3: 스택에 들어있는 정수의 개수를 출력한다.4: 스택이 비어있으면 1, 아니면 0을 출력한다.5: 스택에 정수가 있다면 맨 위의 정수를 출력한다. 없다면 -1을 대신 출력한다.입력첫째 줄에 명령의 수 N이 주어진다. (1 ≤ N ≤ 1,000,000)둘째 줄부터 N개 줄에 명령이 하나씩 주어진다.출력을 요구하는 명령은 하나 이상 주어진다.출력출력을 요구하는 명령이 주..

코딩테스트 2025.04.21