잡다한 배똥월드

728x90
코딩 테스트 풀이 체크리스트
2시간 내에 풀었는가? O
본인의 실력으로 풀었는가? O

 

 

1094번: 막대기

지민이는 길이가 64cm인 막대를 가지고 있다. 어느 날, 그는 길이가 Xcm인 막대가 가지고 싶어졌다. 지민이는 원래 가지고 있던 막대를 더 작은 막대로 자른다음에, 풀로 붙여서 길이가 Xcm인 막대

www.acmicpc.net

 

 

 

 

 

import java.io.*;
import java.util.*;
public class Main {	
	public static void main(String[] args) throws IOException{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		//만들어야 할 길이
		int X = Integer.parseInt(br.readLine());
	
		//첫 막대기 길이
		int stick = 64;

		//남아있는 막대기 길이
		ArrayList<Integer> all = new ArrayList<>();
		//all 안에 들어있는 막대기 모든 길이
		int allStick = 0;
		
		//while문으로 막대 길이와 남아있는 막대 길이가 X보다 작거나 같아질 때까지 반복
		while (stick + allStick > X) {
			//막대기를 절반으로 자르고
			stick /= 2;
			//절반으로 잘린 막대 길이와 남아있는 막대기 모든 길이의 합이 X보다 작으면
			if (stick + allStick < X) {
				//다른 절반으로 잘린 막대기는 보관
				all.add(stick);
				allStick += stick;
			}
		}
		//stick은 따로 추가해줘야하기 때문에 +1을 해줌
		System.out.println(all.size()+1);
	}
}

 

문제 결과 메모리 시간 코드 길이
1094 맞았습니다!! 14328 KB 128 ms 503 B

 

 

 

 

 

 

728x90

+ Recent posts