문제 링크스택 (stack)은 기본적인 자료구조 중 하나로, 컴퓨터 프로그램을 작성할 때 자주 이용되는 개념이다. 스택은 자료를 넣는 (push) 입구와 자료를 뽑는 (pop) 입구가 같아 제일 나중에 들어간 자료가 제일 먼저 나오는 (LIFO, Last in Firs
문제 링크 : https://www.acmicpc.net/problem/10773나코더 기장 재민이는 동아리 회식을 준비하기 위해서 장부를 관리하는 중이다.재현이는 재민이를 도와서 돈을 관리하는 중인데, 애석하게도 항상 정신없는 재현이는 돈을 실수로 잘못 부르
https://www.acmicpc.net/problem/10828정수를 저장하는 스택을 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오.명령은 총 다섯 가지이다.push X: 정수 X를 스택에 넣는 연산이다.pop: 스택에서 가장 위에
문제 1번부터 N번까지 N명의 사람이 원을 이루면서 앉아있고, 양의 정수 K( 이다. N과 K가 주어지면 (N,K) 요세푸스 순열을 구하는 프로그램을 작성하시오. 입력 출력 풀이
정수 N개로 이루어진 수열 A와 정수 X가 주어진다. 이때, A에서 X보다 작은 수를 모두 출력하는 프로그램을 작성하시오.첫째 줄에 N과 X가 주어진다. (1 ≤ N, X ≤ 10,000)둘째 줄에 수열 A를 이루는 정수 N개가 주어진다. 주어지는 정수는 모두 1보다
문제 왕비를 피해 일곱 난쟁이들과 함께 평화롭게 생활하고 있던 백설공주에게 위기가 찾아왔다. 일과를 마치고 돌아온 난쟁이가 일곱 명이 아닌 아홉 명이었던 것이다. 아홉 명의 난쟁이는 모두 자신이 "백설 공주와 일곱 난쟁이"의 주인공이라고 주장했다. 뛰어난 수학적 직관
두 양의 정수가 주어졌을 때, 두 수 사이에 있는 정수를 모두 출력하는 프로그램을 작성하시오.두 정수 A와 B가 주어진다. 8 14첫째 줄에 두 수 사이에 있는 수의 개수를 출력한다.둘째 줄에는 두 수 사이에 있는 수를 오름차순으로 출력한다.59 10 11 12 13틀
문제 동호는 새악대로 T 통신사의 새 핸드폰 옴머나를 샀다. 새악대로 T 통신사는 동호에게 다음 두 가지 요금제 중 하나를 선택하라고 했다. 영식 요금제 민식 요금제 영식 요금제는 30초마다 10원씩 청구된다. 이 말은 만약 29초 또는 그 보다 적은 시간 통화를 했
1부터 20까지 숫자가 하나씩 쓰인 20장의 카드가 아래 그림과 같이 오름차순으로 한 줄로 놓여있다. 각 카드의 위치는 카드 위에 적힌 숫자와 같이 1부터 20까지로 나타낸다. 이제 여러분은 다음과 같은 규칙으로 카드의 위치를 바꾼다: 구간 a, b (단, 1 ≤ a
문제에서 C++을 사용하고 있고 cin/cout을 사용하고자 한다면, cin.tie(NULL)과 sync_with_stdio(false)를 둘 다 적용해 주고, endl 대신 개행문자(\\n)를 쓰자. 단, 이렇게 하면 더 이상 scanf/printf/puts/getc
풀이
출력 형식이 틀렸다고 한다.오른쪽 공백은 출력하지 않아야 한다고 함.
알파벳 소문자로만 이루어진 단어 S가 주어진다. 각 알파벳이 단어에 몇 개가 포함되어 있는지 구하는 프로그램을 작성하시오.첫째 줄에 단어 S가 주어진다. 단어의 길이는 100을 넘지 않으며, 알파벳 소문자로만 이루어져 있다.단어에 포함되어 있는 a의 개수, b의 개수,
다솜이는 은진이의 옆집에 새로 이사왔다. 다솜이는 자기 방 번호를 예쁜 플라스틱 숫자로 문에 붙이려고 한다.다솜이의 옆집에서는 플라스틱 숫자를 한 세트로 판다. 한 세트에는 0번부터 9번까지 숫자가 하나씩 들어있다. 다솜이의 방 번호가 주어졌을 때, 필요한 세트의 개수
문제 n개의 서로 다른 양의 정수 a1, a2, ..., an으로 이루어진 수열이 있다. ai의 값은 1보다 크거나 같고, 1000000보다 작거나 같은 자연수이다. 자연수 x가 주어졌을 때, ai + aj = x (1 ≤ i < j ≤ n)을 만족하는 (ai, aj)
총 N개의 정수가 주어졌을 때, 정수 v가 몇 개인지 구하는 프로그램을 작성하시오.첫째 줄에 정수의 개수 N(1 ≤ N ≤ 100)이 주어진다. 둘째 줄에는 정수가 공백으로 구분되어져있다. 셋째 줄에는 찾으려고 하는 정수 v가 주어진다. 입력으로 주어지는 정수와 v는
문제 정보 초등학교에서는 단체로 2박 3일 수학여행을 가기로 했다. 여러 학년이 같은 장소로 수학여행을 가려고 하는데 1학년부터 6학년까지 학생들이 묵을 방을 배정해야 한다. 남학생은 남학생끼리, 여학생은 여학생끼리 방을 배정해야 한다. 또한 한 방에는 같은 학년의 학
C 언어 프로그래밍에서 문자열(string)은 native한 자료형이 아니다. 사실, 문자열은 그저, 문자열의 끝을 표시하기 위한 말단의 NULL이 사용된, 문자들로 이루어진 문자열일 뿐이다. 하지만 프로그래밍 언어에서 문자열을 다루는 것은 매우 중요하기 때문에, C
두 영어 단어가 철자의 순서를 뒤바꾸어 같아질 수 있을 때, 그러한 두 단어를 서로 애너그램 관계에 있다고 한다. 예를 들면 occurs 라는 영어 단어와 succor 는 서로 애너그램 관계에 있는데, occurs의 각 문자들의 순서를 잘 바꾸면 succor이 되기 때
문제 한 줄로 된 간단한 에디터를 구현하려고 한다. 이 편집기는 영어 소문자만을 기록할 수 있는 편집기로, 최대 600,000글자까지 입력할 수 있다. 이 편집기에는 '커서'라는 것이 있는데, 커서는 문장의 맨 앞(첫 번째 문자의 왼쪽), 문장의 맨 뒤(마지막 문자의
KOI 통신연구소는 레이저를 이용한 새로운 비밀 통신 시스템 개발을 위한 실험을 하고 있다. 실험을 위하여 일직선 위에 N개의 높이가 서로 다른 탑을 수평 직선의 왼쪽부터 오른쪽 방향으로 차례로 세우고, 각 탑의 꼭대기에 레이저 송신기를 설치하였다. 모든 탑의 레이저
문제 키로거는 사용자가 키보드를 누른 명령을 모두 기록한다. 따라서, 강산이가 비밀번호를 입력할 때, 화살표나 백스페이스를 입력해도 정확한 비밀번호를 알아낼 수 있다. 강산이가 비밀번호 창에서 입력한 키가 주어졌을 때, 강산이의 비밀번호를 알아내는 프로그램을 작성하시
정수를 저장하는 큐를 직접 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램 작성하기push X: 정수 X를 큐에 넣는 연산이다.pop: 큐에서 가장 앞에 있는 정수를 빼고, 그 수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다.size:
정수를 저장하는 큐를 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오.명령은 총 여섯 가지이다.push X: 정수 X를 큐에 넣는 연산이다.pop: 큐에서 가장 앞에 있는 정수를 빼고, 그 수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는
N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다.이제 다음과 같은 동작을 카드가 한 장 남을 때까지 반복하게 된다. 우선, 제일 위에 있는 카드를 바닥에
문제 i번째 빌딩의 키가 hi이고, 모든 빌딩은 일렬로 서 있고 오른쪽으로만 볼 수 있다. i번째 빌딩 관리인이 볼 수 있는 다른 빌딩의 옥상 정원은 i+1, i+2, .... , N이다. 그런데 자신이 위치한 빌딩보다 높거나 같은 빌딩이 있으면 그 다음에 있는 모든
크기가 N인 수열 A = A1, A2, ..., AN이 있다. 수열의 각 원소 Ai에 대해서 오큰수 NGE(i)를 구하려고 한다. Ai의 오큰수는 오른쪽에 있으면서 Ai보다 큰 수 중에서 가장 왼쪽에 있는 수를 의미한다. 그러한 수가 없는 경우에 오큰수는 -1이다.예를
문제 오아시스의 재결합 공연에 N명이 한 줄로 서서 기다리고 있다. 이 역사적인 순간을 맞이하기 위해 줄에서서 기다리고 있던 백준이는 갑자기 자기가 볼 수 있는 사람의 수가 궁금해 졌다. 두 사람 A와 B가 서로 볼 수 있으려면, 두 사람 사이에 A 또는 B보다 키
문제 큐에서 세가지 연산을 수행할 수 있다. 첫번째 원소를 뽑아낸다. 큐를 왼쪽으로 한 칸 이동시킨다. (원순열처럼 이동) 큐를 오른쪽으로 한 칸 이동시킨다. 큐에 처음에 포함되어 있던 수 N과 뽑아내려는 원소의 위치가 주어질 때 주어진 원소를 순서대로 뽑아내는데 드
R: 배열의 순서 뒤집기D: 첫 번째 수 버리기 (배열이 비어있을 경우 에러)정수 배열과 수행할 함수가 주어졌을 때 함수를 수행한 결과를 출력한다.
문제 문자열이 주어졌을 때 해당 문자열이 균형잡힌 문자열인지 여부를 판단하자. 괄호는 ()와 [] 두 종류이다. 모든 문장은 .으로 끝난다. 입력의 종료조건으로 맨 마지막에 .이 들어온다. 각 줄마다 해당 문자열이 균형을 이루고 있으면 yes, 아니면 no를 출력한다.
같은 글자끼리 쌍을 짓는다. 만약 선끼리 교차하지 않으면서 각 글자를 정확히 한개의 다른 위치에 있는 같은 글자와 짝 지을 수 있으면 해당 단어는 "좋은 단어"이다. 좋은 단어의 개수를 구하여라단어의 수 N이 주어진다. (1 ≤ N ≤ 100)N개 줄에는 A와 B로만
괄호 문자열이 주어졌을 때 해당 문자열이 vps인지 여부를 yes/no로 출력하여라vps: 한쌍의 괄호 기호로 된 문자열T개의 테스트 데이터가 주어진다.괄호 문자열의 길이는 2이상 50이하이다.
쇠막대를 레이저로 절단한다.절단시 다음 조건을 만족한다.쇠막대기는 자신보다 긴 쇠막대기 위에만 놓일 수 있다. - 쇠막대기를 다른 쇠막대기 위에 놓는 경우 완전히 포함되도록 놓되, 끝점은 겹치지 않도록 놓는다.각 쇠막대기를 자르는 레이저는 적어도 하나 존재한다.레이저는
‘()’ 인 괄호열의 값은 2이다.‘\[]’ 인 괄호열의 값은 3이다.‘(X)’ 의 괄호값은 2×값(X) 으로 계산된다.‘X’ 의 괄호값은 3×값(X) 으로 계산된다.올바른 괄호열 X와 Y가 결합된 XY의 괄호값은 값(XY)= 값(X)+값(Y) 로 계산된다.입력이 잘못
도화지에 그려진 그림의 개수와 그 그림 중 넓이가 가장 넓은 것의 넓이 출력1로 연결된 것을 한 그림으로 정의가로나 세로로 연결된 것은 연결이 된 것대각선으로 연결이 된 것은 떨어진 그림첫째 줄 : 도화지의 세로크기 X 도화지 가로크기가 주어짐둘째 줄: n+1줄까지 그
n\*m 크기의 미로에서 1은 이동가능 0은 이동불가능이다.해당 미로가 주어졌을 떄 (1,1)에서 출발하여 (N,M)의 위치로 이도앟ㄹ 떄 지나야 하는 최소 칸의 개수를 구하여라.15시작하는 칸을 큐에 넣고 방문했다는 표시를 남김큐에서 원소를 꺼내어 그 칸에 인접한
n\*m의 창고에 토마토를 보관한다. 보관 후 하루가 지나면 익은 토마토의 인접한 곳에 있는 토마도가 익는다. 창고에 보관된 토마토들이 며칠이 지나면 다 익게 되는지 그 최소 일수를 구하시오칸에 토마토가 들어있지 않을수도 있다.0: 익지 않은 토마토1: 익은 토마토\-
n\*m의 창고에 토마토를 보관한다. 보관 후 하루가 지나면 익은 토마토의 인접한 곳에 있는 토마도가 익는다. 창고에 보관된 토마토들이 며칠이 지나면 다 익게 되는지 그 최소 일수를 구하시오칸에 토마토가 들어있지 않을수도 있다.0: 익지 않은 토마토1: 익은 토마토\-
2차원 토마토 문제 mnh의 토마토 상자 하루가 되면 위 아래 왼쪽 오른쪽 앞 뒤 -> 6방향에 있는 토마토가 익는다. 대각선의 토마토에는 영향을 주지 못한다. 창고에 보관된 토마토들이 며칠이 지나면 모두 익게 되는지 그 최소 일수를 구하여라 입력 2 ≤ M ≤ 1
미로가 주어진다. R\*C 1 ≤ R, C ≤ 1000 \- - .: 지나갈 수 있는 공간J: 지훈이의 미로에서의 초기 위치F: 불이 난 공간불은 네 방향으로 확산된다.지훈이와 불은 벽이 있는 공간은 통과하지 못한다. 지훈이가 불에 타기 전에 탈출할 수 있
수빈이는 현재 점 N에 있고 동생은 점 K에 있다.수빈이는 걷거나 순간이동을 할 수 있다.걷는다면 x+1, x-1로 이동순간이동을 하면 2\*x로 이동수빈이가 동생을 찾을 수 있는 가장 빠른 시간은 몇초 후인지 구하여라
0: 배추가 없음1: 배추 있음서로 인접해있는 배추가 몇군데있는지그림 1926 문제랑 슷비슷비입력 받을 때 n, m이 아니라 m,n으로 받는 것 주의
N\*N 칸에 R,G,B가 칠해져있다. 구역은 같은 색으로 이루어져있다. 적록색약은 빨간색과 초록색을 구분하지 못한다.그림이 주어졌을 때 적록색약과 비 적록색약인 사람이 보는 구역의 수를 출력하시오.예제 입력5RRRBBGGBBBBBBRRBBRRRRRRRR예제 출력4 3
나이트가 한번에 이동할 수 있는 칸 dx={-2,-1,1,2,2,1,-1,-2} dy={1,2,2,1,-1,-2,-2,-1}나이트가 최소 몇번만에 이동하려는 칸에 도착하는지 출력
M\*N 모눈종이에 K개의 직사각형을 그린다.직사각형 내부를 제외한 나머지 부분이 몇개의 분리된 영역으로 나누어지는지분리된 각 영역의 넓이가 얼마인지를 구하시오.n, m 순서가 너무 헷갈렸다.
문제 히스토그램은 직사각형 여러 개가 아래쪽으로 정렬되어 있는 도형이다. 각 직사각형은 같은 너비를 가지고 있지만, 높이는 서로 다를 수도 있다. 예를 들어, 왼쪽 그림은 높이가 2, 1, 4, 5, 1, 3, 3이고 너비가 1인 직사각형으로 이루어진 히스토그램이다.
문제 각 칸은 금으로 채워져있거나 비어있음 한번에 한칸 이동할 수 있고 동서남북상하로 움직일 수 있음 바깥면은 모두 금이라 탈출할 수 없음 L: 층수, R: 행 , C: 열 1-30까지만 있음 막혀있는 칸: 비어있는 칸: . 시작지점: S ,탈출 출구: E 입력의 끝은
문제 만약에 이동하는 도중에 한 개의 벽을 부수고 이동하는 것이 좀 더 경로가 짧아진다면, 벽을 한 개 까지 부수고 이동하여도 된다. -> 충격적인 조건... n*m 행렬에서 0은 이동, 1은 벽 (0,0) -> (n,m)까지 이동하는데 걸리는 최단 경로 출력 풀이
.: 지나갈 수 있는 공간J: 지훈이의 미로에서의 초기위치 (지나갈 수 있는 공간)F: 불이 난 공간RxC (1~1000)입력예제불은 지훈이가 한 번 이동할 때마다 상하좌우로 한칸씩 늘어난다.지훈이는 미로의 가장자리에 접한 공간에서 탈출할 수 있다. -> 범위 밖으로
문제 본인또는 다른 사람 한명만 선택 가능 서로가 서로를 선택하거나 본인을 선택한 경우에만 팀이 됨 풀이 입력 예제 i 1 2 3 4 5 6 7 j 3 1 3 7 3 4 6 v 1 0 1 0 0 0 0 t 0 0 1 0 0 0 0 본인으로부터 시작해서 본인으로 못
2차원 배열, 높이 정보는 각 인덱스에 양의 정수로 저장 바다는 0동서남북의 0의 개수만큼 본인의 높이에서 빼기각 칸의 높이는 0보다 줄어들지 않음 한 덩어리 빙산이 주어질 때 이 빙산이 두 덩어리 이상으로 분리되는 최초의 시간을 구하시오BFS 두개가 필요할 듯빙산이
문제 자연수 A를 B번 곱한 수를 C로 나눈 나머지를 구하시오 a,b,c는 모두 2,147,483,647이하의 자연수이다. 풀이 int형의 범위가 -2,147,483,647~2,147,483,647이므로 A,B,C는 모두 int 형으로 둘 수 있음 풀이 1 - 시간
1) 함수의 정의 int func(int n, int r, int c) 2^nx2^n 배열에서 (r,c)를 방문하는 순서를 반환하는 함수2) base condition if(n=0) return 0;3) 재귀 식 (r,c)가 1번 사각형일 때 return func
풀이
NxN 크기 종이에 -1 0 1 저장종이가 모두 같은 수로 되어있으면 종이 그대로 사용1이 아닌 경우에는 종이를 같은 크기의 종이 9개로 자르고, 각각의 잘린 종이에 대해 1의 과정을 반복이와 같이 종이를 잘랐을 때, -1로만 채워진 종이의 개수, 0으로만 채워진 종이
전형적인 하노이탑 문제n번을 3번 기둥으로 옮기려면 1~n-1번을 2번 기둥으로 옮긴 후 n을 3번 기둥으로 옮길 수 있다. 즉 풀이 순서는1\. n-1개 원판을 기둥 1에서 2로 옮긴다2\. n번 원판을 기둥1에서 기둥 3으로 옮긴다. 3\. n-1개의 원판을 기둥
Suppose you have n versions 1, 2, ..., n and you want to find out the first bad one, which causes all the following ones to be bad.You are given an AP
오름차순으로 된 배열의 인덱스를 제곱하여 오름차순으로 출력하시오간단하게 제곱한 후 sort 라이브러리를 이용해 정렬하여 리턴하는 방식이다.주어진 벡터의 left 와 right 포인터를 두고 그 값을 서로 비교하며 더 큰 값을 새로운 배열에 저장한다. https: