반응형

 

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

 

백준 알고리즘의 수학1 중 달팽이는 올라가고 싶다 ( 문제 번호 : 2869 )의 소스입니다.

 

 

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

 

해당 문제는 순서를 파악하면 금방 풀 수 있기 때문에 순서와 홀수/짝수 라인 변화되는 공식을 파악하면 

더 빨리 푸실 수 있을거에요.

 

[ 홀수 라인 ]

1번 : 1/1

 

[ 짝수 라인 ]
2번 : 1/2 
3 : 2/1


[ 홀수 라인 ]
4 : 3/1
5 : 2/2
6 : 1/3

 

[ 짝수 라인 ]
7 : 1/4
8 : 2/3
9 : 3/2
10 : 4/1

 

1) JAVA

import java.util.Scanner;

public class Main {
	public static void main(String[] args){
		Scanner scan = new Scanner(System.in);
		int x = scan.nextInt();
		scan.close();
		int max = 0;
		int line = 0;
		//줄을 찾아야함
		for(int i=1;i<=x;i++){
			max += i;
			if(max>=x){
				line=i;
				break;
			}
		}
		//짝수는 오른쪽부터
		if(line%2==0){
			System.out.println((line-(max-x))+"/"+(1+max-x));
		}else{
			System.out.println((1+max-x)+"/"+(line-(max-x)));
		}
	}
}

 

2) PYTHON

   파이썬도 위의 자바의 개념으로 풀면 성공!

x = int(input())
line = 0
max = 0
for i in range(1, x+1):
    line = i
    max += i
    if max >= x:
        break

a = line-(max-x)
b = 1+max-x
if line % 2 == 0:
    print(a, '/', b, sep='')
else:
    print(b, '/', a, sep='')

 

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

 

 

 

반응형

+ Recent posts