안녕하세요 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='')
여러분도 한번 풀어보세요!
'Development > 알고리즘' 카테고리의 다른 글
[ 백준 알고리즘 ] 2275번 부녀회장이 될테야 (JAVA/python) (0) | 2020.07.15 |
---|---|
[ 백준 알고리즘 ] 2292번 벌집 (JAVA/python) (0) | 2020.07.14 |
[ 백준 알고리즘 ] 2869번 달팽이는 올라가고 싶다 (JAVA/python) (0) | 2020.07.12 |
[ 백준 알고리즘 ] 2839번 설탕 배달 (JAVA/python) (0) | 2020.07.11 |
[ 백준 알고리즘 ] 1712번 손익분기점 (JAVA/python) (0) | 2020.07.09 |