본문 바로가기

반응형

분류 전체보기

(482)
알고리즘 단계별로 풀어보기 : BOJ-1475(방번호) 문제(출처)다솜이는 은진이의 옆집에 새로 이사왔다. 다솜이는 자기 방 번호를 예쁜 플라스틱 숫자로 문에 붙이려고 한다. 다솜이의 옆집에서는 플라스틱 숫자를 한 세트로 판다. 한 세트에는 0번부터 9번까지 숫자가 하나씩 들어있다. 다솜이의 방 번호가 주어졌을 때, 필요한 세트의 개수의 최솟값을 출력하시오. (6은 9를 뒤집어서 이용할 수 있고, 9는 6을 뒤집어서 이용할 수 있다.) 입력첫째 줄에 다솜이의 방 번호 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수 또는 0이다. 출력첫째 줄에 필요한 세트의 개수를 출력한다. 예제 입력9999 예제 출력2 내 풀이import java.io.BufferedReader;import java.io.BufferedWriter;import java.io...
알고리즘 단계별로 풀어보기 : BOJ-2775(부녀회장이될테야) 문제(출처)평소 반상회에 참석하는 것을 좋아하는 주희는 이번 기회에 부녀회장이 되고 싶어 각 층의 사람들을 불러 모아 반상회를 주최하려고 한다. 이 아파트에 거주를 하려면 조건이 있는데, “a층의 b호에 살려면 자신의 아래(a-1)층의 1호부터 b호까지 사람들의 수의 합만큼 사람들을 데려와 살아야 한다” 는 계약 조항을 꼭 지키고 들어와야 한다. 아파트에 비어있는 집은 없고 모든 거주민들이 이 계약 조건을 지키고 왔다고 가정했을 때, 주어지는 양의 정수 k와 n에 대해 k층에 n호에는 몇 명이 살고 있는지 출력하라. 단, 아파트에는 0층부터 있고 각층에는 1호부터 있으며, 0층의 i호에는 i명이 산다. 입력첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄..
알고리즘 단계별로 풀어보기 : BOJ-10250(ACM호텔) 문제(출처)ACM 호텔 매니저 지우는 손님이 도착하는 대로 빈 방을 배정하고 있다. 고객 설문조사에 따르면 손님들은 호텔 정문으로부터 걸어서 가장 짧은 거리에 있는 방을 선호한다고 한다. 여러분은 지우를 도와 줄 프로그램을 작성하고자 한다. 즉 설문조사 결과 대로 호텔 정문으로부터 걷는 거리가 가장 짧도록 방을 배정하는 프로그램을 작성하고자 한다. 문제를 단순화하기 위해서 호텔은 직사각형 모양이라고 가정하자. 각 층에 W 개의 방이 있는 H 층 건물이라고 가정하자 (1 ≤ H, W ≤ 99). 그리고 엘리베이터는 가장 왼쪽에 있다고 가정하자(그림 1 참고). 이런 형태의 호텔을 H × W 형태 호텔이라고 부른다.호텔 정문은 일층 엘리베이터 바로 앞에 있는데, 정문에서 엘리베이터까지의 거리는 무시한다. 또..
알고리즘 단계별로 풀어보기 : BOJ-1011(Fly me to the Alpha Centauri) 문제(출처)우현이는 어린 시절, 지구 외의 다른 행성에서도 인류들이 살아갈 수 있는 미래가 오리라 믿었다. 그리고 그가 지구라는 세상에 발을 내려 놓은 지 23년이 지난 지금, 세계 최연소 ASNA 우주 비행사가 되어 새로운 세계에 발을 내려 놓는 영광의 순간을 기다리고 있다. 그가 탑승하게 될 우주선은 Alpha Centauri라는 새로운 인류의 보금자리를 개척하기 위한 대규모 생활 유지 시스템을 탑재하고 있기 때문에, 그 크기와 질량이 엄청난 이유로 최신기술력을 총 동원하여 개발한 공간이동 장치를 탑재하였다.하지만 이 공간이동 장치는 이동 거리를 급격하게 늘릴 경우 기계에 심각한 결함이 발생하는 단점이 있어서, 이전 작동시기에 k광년을 이동하였을 때는 k-1 , k 혹은 k+1 광년만을 다시 이동할 ..
Java에서 프로그램 수행 시간 측정하기 import java.io.BufferedWriter;import java.io.OutputStreamWriter;public class Main { public static void main(String args[]) { BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); long start = System.currentTimeMillis(); // 수행 코드 long end = System.currentTimeMillis(); bw.write("실행 시간 : " + (end - start) /1000.0 + "초"); bw.flush(); bw.close(); } catch (NumberFormatException e..
알고리즘 단계별로 풀어보기 : BOJ-1193(분수찾기) 문제(출처)무한히 큰 배열에 다음과 같이 분수들이 적혀있다. 이와 같이 나열된 분수들을 1/1 -> 1/2 -> 2/1 -> 3/1 -> 2/2 -> … 과 같은 지그재그 순서로 차례대로 1번, 2번, 3번, 4번, 5번, … 분수라고 하자. X가 주어졌을 때, X번째 분수를 구하는 프로그램을 작성하시오. 입력첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다. 출력첫째 줄에 분수를 출력한다. 예제 입력14 예제 출력2/4 내 풀이import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWri..
알고리즘 단계별로 풀어보기 : BOJ-2292(벌집) 문제(출처) 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌을 때, 벌집의 중앙 1에서 N번 방까지 최소 개수의 방을 지나서 갈 때 몇 개의 방을 지나가는지(시작과 끝을 포함하여)를 계산하는 프로그램을 작성하시오. 예를 들면, 13까지는 3개, 58까지는 5개를 지난다. 입력첫째 줄에 N(1 ≤ N ≤ 1,000,000,000)이 주어진다.첫째 줄에 N(1 ≤ N ≤ 1,000,000,000)이 주어진다. 출력입력으로 주어진 방까지 최소 개수의 방을 지나서 갈 때 몇 개의 방을 지나는지 출력한다. 예제 입력13 예제 출력3 내 풀이import java.io.Buf..
TDD 학습 및 실습 정리2(JUnit에 대하여) TDD 학습 및 실습 정리1에 이어 정리합니다. JUnit의 기본적인 기능 3가지 - 테스트 결과가 예상과 강튼지를 판별해주는 단정문(assertions) - 여러 테스트에서 공용으로 사용 할 수 있는 테스트 픽스처(test fixture) - 테스트 작업을 수행할 수 있게 해주는 테스트 러너(test runner) JUnit을 비롯하여 단위 테스트를 잘 작성하려면 테스트 픽스처를 알아야합니다.테스트 픽스처란테스트를 반복적으로 수행 할 수 있게 도와주고 매번 동일한 결괄르 얻을 수 있는 '기반이 되는 상태나 환경'일관 된 테스트 실행 환경'테스트 컨텍스트'라고 부르기도 합니다.테스트의 작업이나 결과로 만들어진 대상을 통칭합니다. 대표적으로 setUp() 같은 메소드는 테스트 픽스처를 만들고, 정리하는 수..

반응형