반응형
문제
풀이
package step8;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException{
// 분수찾기
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int x = Integer.parseInt(br.readLine());
int crossCnt = 1;//대각선 개수
int prevSum = 0;//현재 대각선 직전 칸 개수
while(true) {
//x값 <= 현재 대각선 직전 칸 개수 + 대각선 개수
if(x <= prevSum + crossCnt) {
if(crossCnt % 2 == 1) {//대각선의 개수가 홀수일 때
System.out.println((crossCnt - (x - prevSum - 1)) + "/" + (x - prevSum));
break;
}else {//대각선의 개수가 짝수일 때
System.out.println((x - prevSum) + "/" + (crossCnt - (x - prevSum - 1)));
break;
}
}else {
prevSum += crossCnt;
crossCnt++;
}
}
br.close();
}
}
팁
- 빨간색 ( 대각선 칸의 개수가 홀수 ) 일 때는 왼쪽 아래에서 오른쪽 위 방향 ( ↗︎ ) 으로 진행되고,
- 파란색 ( 대각선 칸의 개수가 짝수 ) 일 때는 오른쪽 위에서 왼쪽 아래 방향 ( ↙︎ ) 으로 진행된다.
- 주어진 값 x가 몇 번째 대각선에 위치하는지 반복문을 활용하여 구하고, 짝수/홀수를 구분하여 값을 구한다.
출처
반응형
'알고리즘 > Java' 카테고리의 다른 글
[백준/단계별로 풀어보기] 8. 기본 수학 1 - 10250.ACM 호텔 (Java8) (0) | 2021.09.14 |
---|---|
[백준/단계별로 풀어보기] 8. 기본 수학 1 - 2869.달팽이는 올라가고 싶다 (Java8) (0) | 2021.09.13 |
[백준/단계별로 풀어보기] 8. 기본 수학 1 - 2292.벌집 (Java8) (0) | 2021.09.13 |
[백준/단계별로 풀어보기] 8. 기본 수학 1 - 1712.손익분기점 (Java8) (0) | 2021.09.13 |
[백준/단계별로 풀어보기] 7. 문자열 - 1316.그룹 단어 체커 (Java8) (0) | 2021.09.08 |