반응형

 

안녕하세요 Jin's 입니다.

 

백준 알고리즘의 수학1 중 벌집 ( 문제 번호 : 2292 )의 소스입니다.

 

Java와 Python 두가지 버전 소스입니다.

 

[1번 줄]

1

 

[2번 줄]

2~7 -> 6

 

[3번 줄]

8~19 -> 12

 

[4번 줄]

20~37 -> 18

 

줄(=> 몇번 지나가야 있는지 알수있는 숫자)을 보면 6씩 증가합니다.

적어도 줄의 마지막 숫자안에 들어가 있으면 해당 줄의 수만큼만 지나면 되어

줄의 숫자를 구한다는 생각으로 해보았습니다.

 

1) JAVA

import java.util.Scanner;

public class Main {
	public static void main(String[] args){
		Scanner scan = new Scanner(System.in);
		int n = scan.nextInt();
		scan.close();
		
		int row=1;
		int last_num=1;
		while(true){
			if(last_num>=n) break;
			last_num+=6*row;
			row++;
		}
			System.out.println(row);
	}
}

 

2) PYTHON

n = int(input())
row = 1
max_num = 1

while True:
    if max_num >= n:
        print(row)
        break
    max_num += 6*row
    row += 1

 

여러분도 한번 풀어보세요!

 

 

반응형

+ Recent posts