Computer/Algorithm 88

Daily Algorithm - 부녀회장이 될테야

문제평소 반상회에 참석하는 것을 좋아하는 주희는 이번 기회에 부녀회장이 되고 싶어 각 층의 사람들을 불러 모아 반상회를 주최하려고 한다.이 아파트에 거주를 하려면 조건이 있는데, “a 층의 b 호에 살려면 자신의 아래(a-1)층에 1호부터 b 호까지 사람들의 수의 합만큼 사람들을 데려와 살아야한다” 는 계약 조항을 꼭 지키고 들어와야 한다.아파트에 비어있는 집은 없고 모든 거주민들이 이 계약 조건을 지키고 왔다고 가정 했을 때, 주어지는 양의 정수 k와 n에 대해 k층에 n호에는 몇 명이 살고 있나를 출력하라. 단, 아파트에는 0층부터 있고 각층에는 1호부터 있으며, 0층에 i호에는 i명이 산다.입력첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 정수..

Computer/Algorithm 2018.06.04

Daily Algorithm - ACM 호텔

문제 ACM 호텔 매니저 지우는 손님이 도착하는 대로 빈 방을 배정하고 있다. 고객 설문조사에 따르면 손님들은 호텔 정문으로부터 걸어서 가장 짧은 거리에 있는 방을 선호한다고 한다. 여러분은 지우를 도와 줄 프로그램을 작성하고자 한다. 즉 설문조사 결과 대로 호텔 정문으로부터 걷는 거리가 가장 짧도록 방을 배정하는 프로그램을 작성하고자 한다. 문제를 단순화하기 위해서 호텔은 직사각형 모양이라고 가정하자. 각 층에 W 개의 방이 있는 H 층 건물이라고 가정하자 (1 ≤ H, W ≤ 99). 그리고 엘리베이터는 가장 왼쪽에 있다고 가정하자(그림 1 참고). 이런 형태의 호텔을 H × W 형태 호텔이라고 부른다. 호텔 정문은 일층 엘리베이터 바로 앞에 있는데, 정문에서 엘리베이터까지의 거리는 무시한다. 또 모..

Computer/Algorithm 2018.05.31

Daily Algorithm - 음계

문제 다장조는 c d e f g a b C, 총 8개 음으로 이루어져있다. 이 문제에서 8개 음은 다음과 같이 숫자로 바꾸어 표현한다. c는 1로, d는 2로, ..., C를 8로 바꾼다. 1부터 8까지 차례대로 연주한다면 ascending, 8부터 1까지 차례대로 연주한다면 descending, 둘 다 아니라면 mixed 이다. 연주한 순서가 주어졌을 때, 이것이 ascending인지, descending인지, 아니면 mixed인지 판별하는 프로그램을 작성하시오.입력첫째 줄에 8개 숫자가 주어진다. 이 숫자는 문제 설명에서 설명한 음이며, 1부터 8까지 숫자가 한 번씩 등장한다.출력 첫째 줄에 ascending, descending, mixed 중 하나를 출력한다. 예제 입력1 2 3 4 5 6 7 8..

Computer/Algorithm 2018.05.30

Daily Algorithm - 스택

문제정수를 저장하는 스택을 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오.명령은 총 다섯 가지이다.push X: 정수 X를 스택에 넣는 연산이다.pop: 스택에서 가장 위에 있는 정수를 빼고, 그 수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다.size: 스택에 들어있는 정수의 개수를 출력한다.empty: 스택이 비어있으면 1, 아니면 0을 출력한다.top: 스택의 가장 위에 있는 정수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다.입력첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다...

Computer/Algorithm 2018.05.29

Daily Algorithm - 비밀편지

문제셀던과 레오나드는 암호화화여 문자를 주고 받았다.암호화하는 방법은 숫자 S 만큼 알파벳을 이동하는 대치 문자를 이용하였다. (알파벳은 대문자만 사용)여기서 S를 구하는 방법은 S = 3P + K 이다.K는 입력으로 주어지고, P는 문자열의 각 자릿수값이다.예를 들어, K=3이고, ZOOM이라는 문자를 암호화한다면,S = 3*1 + 3 = 6 , Z ==> FS = 3*2 + 3 = 9 , O ==> XS = 3*3 + 3 = 12 , O ==> AS = 3*4 + 3 = 15 , M ==> B이다.이 문제에서는 암호화된 문자를 원문으로 바꾸는 것이 문제이다.즉, 암호문 FXAB가 입력되면 원문 ZOOM을 출력해야한다.입력첫째줄에 K값이 입력된다. (K < 10)둘째줄에 20글자이내의 대문자로 이루어진..

Computer/Algorithm 2018.05.28

Daily Algorithm - 퀴즈

문제2016년을 맞아 창원과학고등학교에서는 병설유치원을 만들었다. 유치원에는 보통 재미있는 놀이기구를 설치하는데, 공사가 덜 끝나서인지 아직 유치원에 놀이기구가 없는 채로 유치원이 운영되었다. 그래서 선생님들은 놀이기구를 대체하기 위해서 여러 가지 수학적인 퀴즈를 냈다.이곳의 유치원생 중 한 명인 기수는 상품을 받고 싶었지만 퀴즈가 너무 어려워서 당신에게 퀴즈를 대신 풀어 달라고 도움을 요청했다. 퀴즈의 내용은 이렇다.선생님들이 높이가 다른 여러 개의 막대기를 일렬로 세운다. 그리고 이웃한 막대기의 위쪽 끝은 서로 줄로 연결한다. 그러면 왼쪽에서 오른쪽으로 시선을 이동했을 때, 양쪽 막대기의 높이에 따라서 그 사이의 줄들이 올라가는 모양일 수도 있고, 내려가는 모양일 수도 있고, 가끔씩은 지면과 수평일 ..

Computer/Algorithm 2018.04.22

Daily Algorithm - 소수

문제문제1) 소수 (중등1)자연수 M과 N이 주어질 때 M이상 N이하의 자연수 중 소수인 것을 모두 골라 이들 소수의 합과 최소값을 찾는 프로그램을 작성하시오.예를 들어 M=60, N=100인 경우 60이상 100이하의 자연수 중 소수는 61, 67, 71, 73, 79, 83, 89, 97 총 8개가 있으므로, 이들 소수의 합은 620이고, 최소값은 61이 된다.입력첫 째 줄에 M이, 둘째 줄에 N이 주어진다. M과 N은 10000이하의 자연수이며 M은 N보다 같거나 작다.출력M이상 N이하의 자연수 중 소수인 것을 모두 찾아 첫째 줄에 그 합을, 둘째 줄에 그 중 최소값을 출력한다.단, M이상 N이하의 자연수 중 소수가 없을 경우는 첫째 줄에 -1을 출력한다.예제 입력60 100예제 출력620 61풀이..

Computer/Algorithm 2018.04.21