3985번: 롤 케이크 첫째 줄에 롤 케이크의 길이 L (1 ≤ L ≤ 1000)이 주어진다. 둘째 줄에는 방청객의 수 N (1 ≤ N ≤ 1000)이 주어진다. 다음 N개 줄에는 각 방청객 i가 종이에 적어낸 수 Pi와 Ki가 주어진다. (1 ≤ Pi ≤ Ki www.acmicpc.net 첫 번째 시도 L = int(input()) # 롤 케이크의 길이 N = int(input()) # 방청객의 수 li = list() # 기대하는 조각의 길이 리스트 d = dict() # 실제 차지한 조각 딕셔너리 for guest in range(1, N+1): p, k = map(int, input().split()) # 종이에 적어낸 조각의 범위 li.append(k - p) for i in range(p, k..
분류 전체보기

https://www.acmicpc.net/problem/16205 16205번: 변수명 첫째 줄에 사용한 표기법의 번호와 변수명이 주어진다. 번호가 1인 경우는 카멜 표기법, 2인 경우는 스네이크 표기법, 3인 경우는 파스칼 표기법이다. 입력으로 주어지는 변수명의 길이는 100을 www.acmicpc.net 문제 코드 문제 풀이 첫줄에 n과 v를 입력함. 1) n == 1 일 때, 첫번째 출력은 카멜 표기법이므로 v 그대로 출력, 두번째 출력인 스네이크 표기법은 문장 v 에서 대문자를 찾아내 소문자로 바꾸고, 그 앞에 "_" 를 추가함. 세번째 출력인 파스칼 표기법은 카멜 표기법에서 맨 앞 글자만 대문자로 바꿔서 출력. 2) n == 2 일 때, 첫번째 출력인 카멜 표기법은 v에서 "_" 의 위치를 찾..

1362번: 펫 당신은 게임으로 펫을 기르고 있습니다. 이 펫은 웃는 표정, 슬픈 표정을 가지고 있으며, 만약 죽는다면 '드러눕습니다.' 펫에게는 적정 체중이 있습니다. 펫의 실제 체중이 적정 체중의 1/2배를 www.acmicpc.net 문제코드
문제 https://www.acmicpc.net/problem/1644 Algorithm 모르면 너무 어렵고 알면 너무 쉬운 문제이기에 출제 시 변별력이 굉장히 강하면서도, 소수 판정 + 투 포인터 태그 중 굉장히 교육적인 문제라고 생각되어 소개한다. 연속된 소수의 합으로만 이루어져 있어야하므로, 에라토스테네체의 체를 활용해 N까지의 소수를 담은 배열을 만들어야 한다. 에라토스테네체는 연속된 소수 판별의 대표적인 알고리즘이다. void Eratos(int num) { // 에테체 for(int i = 2; i*i n; } void Eratos(int num) { // 에테체 for(int i = 2; i*i

1157번: 단어 공부 (acmicpc.net) 1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. www.acmicpc.net 먼저 대문자를 출력해야하므로 s = input().upper()로 설정하였다. 그리고 딕셔너리를 사용하여 문자열에 알파벳이 각각 몇개있는지 설정하였다. 그 후 새로운 리스트 arr을 설정하여 딕셔너리의 밸류값이 최대인 x를 arr에 추가하였다. 문제에서 가장 많이 사용된 알파벳이 여러개인 경우에는 ?를 출력하라 했으므로, len(arr)이 1이 아닐때와 1일때를 나누어 코드를 설정하였다.
문제 마법사 상어는 파이어볼, 토네이도, 파이어스톰, 물복사버그 마법을 할 수 있다. 오늘 새로 배운 마법은 비바라기이다. 비바라기를 시전하면 하늘에 비구름을 만들 수 있다. 오늘은 비바라기를 크기가 N×N인 격자에서 연습하려고 한다. 격자의 각 칸에는 바구니가 하나 있고, 바구니는 칸 전체를 차지한다. 바구니에 저장할 수 있는 물의 양에는 제한이 없다. (r, c)는 격자의 r행 c열에 있는 바구니를 의미하고, A[r][c]는 (r, c)에 있는 바구니에 저장되어 있는 물의 양을 의미한다. 격자의 가장 왼쪽 윗 칸은 (1, 1)이고, 가장 오른쪽 아랫 칸은 (N, N)이다. 마법사 상어는 연습을 위해 1번 행과 N번 행을 연결했고, 1번 열과 N번 열도 연결했다. 즉, N번 행의 아래에는 1번 행이, ..

문제 https://www.acmicpc.net/problem/14495 14495번: 피보나치 비스무리한 수열 피보나치 비스무리한 수열은 f(n) = f(n-1) + f(n-3)인 수열이다. f(1) = f(2) = f(3) = 1이며 피보나치 비스무리한 수열을 나열하면 다음과 같다. 1, 1, 1, 2, 3, 4, 6, 9, 13, 19, ... 자연수 n을 입력받아 n번째 피보 www.acmicpc.net 코드 풀이 f(n)=f(n-1)+f(n-3)을 n의 범위인 116 안에서 반복문을 돌려 리스트를 미리 만들어놓는다. f[0]부터 첫번째 숫자가 들어가므로 n-1항의 값을 출력한다.

https://www.acmicpc.net/problem/12780 12780번: 원피스 바야흐로 지금은 대해적 시대, 밀짚모자 해적단의 선장 교정이는 어린 시절 우연히 잊지 못할 한 마디를 들었다. 그것은 바로 해적 왕 골.D.상윤이 자신이 모은 모든 보물인 원피스를 위대한 항 www.acmicpc.net 이 문제는 문자열 탐색에 관한 문제이다. 위와 같은 방법으로 input을 받게 되면 마지막에 '\n'이 포함되므로, list에는 입력한 문자수보다 한 개 더 많이 들어가게 된다. 따라서 우리가 원하는 만큼 슬라이싱을 하기 위해서는 len(변수) - 1까지여야 한다. for문을 이용하여 돌아가며 일치하는 단어를 찾으며, 찾는다면 cnt 변수를 하나씩 증가시킨 후 출력한다.

9012번: 괄호 (acmicpc.net) 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net 본 문제는 '스택(stack)' 자료 구조를 이용한 문자열 문제이다. 입력 받은 문자열에 대해 열린 괄호 '('에 대해서 스택에 push() 을 수행하고 닫힌 괄호 ')'에 대해서는 pop() 을 수행한다. -------------- 출력시, 'boolean' bool형 변수를 활용하여 True 시 'YES', False 시 'NO'를 출력한다. 열린 괄호(왼쪽 괄호) 갯수에 대한 카운트를..

https://www.acmicpc.net/problem/2511 2511번: 카드놀이 첫 번째 줄에는 게임이 끝난 후, A와 B가 받은 총 승점을 순서대로 빈칸을 사이에 두고 출력한다. 두 번째 줄에는 이긴 사람이 A인지 B인지 결정해서, 이긴 사람을 문자 A 또는 B로 출력한다. 만약 www.acmicpc.net [문제] [입력/출력] package week2; import java.util.Scanner; public class No_2511 { public static void main(String[] args) { int aCard[] = new int[10]; int bCard[] = new int[10]; int aSum=0, bSum = 0; Scanner scanner = new Scan..
https://www.acmicpc.net/problem/14002 14002번: 가장 긴 증가하는 부분 수열 4 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이 www.acmicpc.net 최장 증가 부분순열 문제. 이때 최장 증가 부분순열이란 원소가 n개인 배열의 일부 원소를 골라내서 만든 부분 수열 중, 각 원소가 이전 원소보다 크다는 조건을 만족하고, 그 길이가 최대인 부분 수열 이는 동적 계획법 문제로, dp 테이블을 만들어 풀이할 수 있다. 모든 원소가 1인 DP 테이블을 만들어주고, 조건에 ..
10773번: 제로 (acmicpc.net) 10773번: 제로 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경 www.acmicpc.net 코드 let fs = require('fs'); let input = fs.readFileSync('/dev/stdin').toString().split('\n'); const caseCount = Number(input[0]); const stack = []; for (let i = 1; i