Tany
백문이불어일Tany
Tany
전체 방문자
오늘
어제
  • 분류 전체보기 (197)
    • JAVA TPC (1)
    • JAVA (10)
    • CS (3)
    • SPRING (5)
    • DFS BFS (12)
    • SQL (7)
    • 알고리즘 정리 (76)
    • Git, Github (3)
    • 학습 계획 (36)
    • 코드스쿼드 학습일지 (19)
    • Servlet (5)
    • VPC (2)
    • AWS (4)
    • JPA (5)
    • 취미생활 (2)
    • 프로젝트 기록 (7)
      • Issue Tracker 삽질 기록 (5)
      • 당근마켓 API 서버 기록 (2)
      • 나만의 블로그 제작 기록 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • EC2
  • 재귀
  • JPA
  • JSP
  • 백준
  • 문자열
  • 파이썬
  • 면접을 위한 CS 전공지식 노트
  • 프로그래머스
  • 정렬
  • dfs
  • Stack
  • 주간 학습 계획
  • BFS
  • 해시
  • hash
  • 인프런
  • github
  • 자료구조
  • java
  • 이분탐색
  • MVC
  • 이코테
  • GIT
  • sql
  • 자바
  • AWS
  • 알고리즘
  • MySQL
  • 완전탐색

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Tany

백문이불어일Tany

백준 1193번[수학] 분수찾기
알고리즘 정리

백준 1193번[수학] 분수찾기

2021. 10. 26. 13:39


1) Buffered를 이용한 풀이

 

● 변수 설정

  가. 입력받을 수 N

  나. 몇 번째 대각선인지 나타내주는 T

   - 첫 번째 대각선부터 시작하기 때문에 1로 초기화

  다. 해당 대각선까지의 모든 원소 갯수 Max (T=3이라면, T=1 ~3 까지 모든 원소는 6개, 즉 MAX = 6)

   - 첫 번째 대각선의 원소 갯수는 1이기 때문에 1로 초기화

 

● top과 bot 값을 구해주는 식은 노가다로 찾아냈다... 

   - 테스트 케이스 3개 정도를 참고해서 비교해가며 찾았다. 

   - 사용가능한 변수 T, N, Max가 3개였기 때문에 가능했던 것 같다. 

 

import java.io.*;

public class baek_1193 {
    public static void main(String args[]) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());
        int max = 1;
        int t = 1;

        while (true) {
        	// n이 1이라면 아래의 식들을 진행할 필요가 없기 때문에 바로 1/1 출력 후 break
            if (n == 1) {
                System.out.println("1/1");
                break;
            }
			
            // 몇 번째 대각선인지 알아내기 위해 t를 계속해서 더해주고 max 값이 입력 값 n을 넘을 때까지 진행
            max = (t+1) + max;
            t++;
			
            // 구해준 max 값이 입력 값 n을 넘는다면 즉, 입력 값이 t번째 대각선에 포함되있다는 것을 의미.
            if (max >= n) {
                // t가 짝수라면 ?
                if (t % 2 == 0) {
                    int top = (n + t) - max;
                    int bot = (max - n) + 1;
                    System.out.println(top + "/" + bot);
                    break;
                // t가 홀수라면 ?
                } else {
                    int top = (max - n) +1;
                    int bot = (n + t) - max;
                    System.out.println(top + "/" + bot);
                    break;
                }
            }
        }
    }
}

 

 

 

 

 

 

'알고리즘 정리' 카테고리의 다른 글

백준 1712번[수학] 손익분기점  (0) 2021.10.26
백준 2292번[수학] 벌집  (0) 2021.10.26
백준 1316번[문자열] 그룹 단어 체커  (0) 2021.10.20
백준 2941번[문자열] 크로아티아 알파벳  (0) 2021.10.20
백준 5622번[문자열] 다이얼  (0) 2021.10.20
    '알고리즘 정리' 카테고리의 다른 글
    • 백준 1712번[수학] 손익분기점
    • 백준 2292번[수학] 벌집
    • 백준 1316번[문자열] 그룹 단어 체커
    • 백준 2941번[문자열] 크로아티아 알파벳
    Tany
    Tany
    내가 보려고 만드는 백엔드 기록장 Github https://github.com/juni8453

    티스토리툴바