문제 풀이 ✏️/기타
[백준] 2292 (벌집)
interfacer_han
2023. 11. 10. 15:07
#1 알고리즘
#1-1
#1-2
#1-3
#2 코드
#2-1 자바
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
sc.nextLine();
sc.close();
System.out.println(Integer.toString(getLevel(N)));
}
private static int getLevel(int roomNumber) {
if(roomNumber == 1) {
return 1;
}
for(int i = 3; true; i++) {
if(roomNumber < getStartRoom(i)) {
return i - 1;
}
}
}
private static int getStartRoom(int level) {
if(level == 1) {
return 1;
} else {
return 2 + 3 * (level - 1) * (level - 2);
}
}
}
#2-2 코틀린
fun main() {
val N = readLine()!!.trim().toInt()
println(getLevel(N).toString())
}
fun getLevel(roomNumber: Int): Int {
if(roomNumber == 1) {
return 1
}
var i = 3
while(true) {
if(roomNumber < getStartRoom(i)) {
return i - 1
}
i++
}
}
fun getStartRoom(level: Int): Int {
if(level == 1) {
return 1
} else {
return 2 + 3 * (level - 1) * (level - 2)
}
}