Development/알고리즘
[ 백준 알고리즘 ] 1193번 분수찾기 (JAVA/python)
Jin’s
2020. 7. 13. 18:51
반응형
안녕하세요 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='')
여러분도 한번 풀어보세요!
반응형