Baekjoon algorithm training

[백준] 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)
    }
}

'Baekjoon algorithm training' 카테고리의 다른 글

[백준] 2751 (수 정렬하기 2)  (0) 2023.11.15
[백준] 2750 (수 정렬하기)  (0) 2023.11.11
[백준] 2231 (분해합)  (0) 2023.11.09
[백준] 1978 (소수 찾기)  (0) 2023.11.08
[백준] 1654 (랜선 자르기)  (0) 2023.11.04