1) Buffered를 이용한 풀이
● 변수 설정
가. 입력받을 숫자 n
나. 벌집을 층수로 표현하기 위한 floor
- 1은 1층, 2 ~ 7은 2층, 8 ~ 19는 3층, 20 ~ 37은 4층.. (중략)
다. 해당 층 까지 최대 범위를 표현하기 위한 max
- 1층의 Max는 1, 2층은 3, 3층은 19, 4층은 37 .. (중략)
import java.io.*;
public class Main {
public static void main(String args[]) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
int floor = 1; // 층
int max = 1; // 최대 범위 (3층까지 있다면 max = 19)
while(true) {
// 입력받은 수 n이 1이라면 아래의 식을 진행할 필요가 없으므로 1 출력
if (n == 1) {
System.out.println(1);
break;
}
// 6씩 더하는게 아니라 (6*i)씩 더해줘야됨
max += 6 * floor;
floor++;
// max가 입력받은 n보다 더 커진다면 n이 존재하는 해당 층을 알아낼 수 있다.
if (max >= n) {
System.out.println(floor);
break;
}
}
}
}
'알고리즘 정리' 카테고리의 다른 글
백준 2869번[수학] 달팽이는 올라가고 싶다 (0) | 2021.10.26 |
---|---|
백준 1712번[수학] 손익분기점 (0) | 2021.10.26 |
백준 1193번[수학] 분수찾기 (0) | 2021.10.26 |
백준 1316번[문자열] 그룹 단어 체커 (0) | 2021.10.20 |
백준 2941번[문자열] 크로아티아 알파벳 (0) | 2021.10.20 |