백준 1193번 문항 www.acmicpc.net/problem/1193
풀이
denominator 분자, numerator 분모를 정수인 변수로 잡는다. 그리고 for문의 반복 한계점은 백준 문제의 입력값 범위를 사용했다.
백준에서 주어진 표를 보면 한 줄이 증가할 때마다 1씩 증가한다.
1. 몇 번째 줄인지 알아내기
for문에서 i가 1씩 증가할 수 있도록 하고, 증가할 때마다 그 값을 check라는 변수에서 돌면서 차감한다. check의 초기값은 입력값인 n값으로 한다. check 값이 i보다 작거나 같다면, i 줄에 있는 분수인 것을 알 수 있다.
2. 분수구하기
지그재그로 지나간다는 것을 고려하면 분자와 분모 값이 뒤바뀌어야 된다는 것을 알 수 있다.
만약 i 줄이 2의 배수(짝수)라면 분자 값이 순차적으로 증가하기 때문에 i 를 연속해서 차감하고 남은 check 값이다. 분모 값은 반대로 가므로 i줄에서 check 값을 제거하고 1을 더한 수가 된다.
만약 i 줄이 홀수라면 분자, 분모 값을 바꿔서 출력한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
import java.util.Scanner;
public class Math_1193 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
sc.nextLine();
int check = n;
int denominator = 0; //분모
int numerator = 0; //분자
for (int i=1; i<=10000000; i++) {
if(check<=i) {
denominator = check;
numerator = i-check+1;
if(i%2==0)
System.out.println(denominator+"/"+numerator);
else
System.out.println(numerator+"/"+denominator);
break;
} else check=check-i;
}
sc.close();
}
}
|
cs |
'알고리즘과 코테' 카테고리의 다른 글
[JAVA | 백준 9498] 시험성적 (0) | 2021.03.16 |
---|---|
[JAVA | 백준 1085] 직사각형에서 탈출 (0) | 2021.03.08 |
[JAVA | 백준 5622] 다이얼 (0) | 2021.03.03 |
[JAVA | 백준 4796] 캠핑 (0) | 2021.02.28 |
[JAVA | 백준 1110] 더하기 사이클 (0) | 2021.02.28 |
댓글
최근에 올라온 글
TAG
- jdbc
- 노마드코더
- 개발도서
- gradle build
- intellij
- 정보처리기사 필기
- AWS
- spring
- gradle
- SQLD
- putty
- 웹페이지만들기
- JIRA
- IT 5분 잡학사전
- 기술블로그
- 정보처리기사 실기
- 오늘의코딩
- LifecycleException
- 정보처리기사
- 실용주의프로그래머
- ubuntu
- 노개북
- 북클럽
- EC2
- 배포
- java
- 호스팅영역
- 독서후기
- filezila
- git연동
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
글 보관함