-
[백준/BOJ] 17362번 : 수학은 체육과목입니다 2 (JAVA / 자바)백준 2022. 1. 28. 01:42
안녕하세요~ 코딩하는 코알못 코메인입니다.
https://www.acmicpc.net/problem/17362
- 문제 -
난이도 브론즈 4 문제이다.
문제가 길어 주요 부분 사진만 가져왔다.
자바에서 입력방식은 scanner와 bufferedreader가 있다.
자바를 초반에 접하면 처음에 배우는 입력은 scanner이다. scanner가 bufferedreader보다 편하지만 속도가 느리다.
bufferedreader는 무조건 문자열로 받아오기때문에 정수형이나 실수형 변수에 저장하기 위해서는 입력과 형변환을 해줘야한다.
더 자세한 내용은 아래 글 참고 하면 좋다.
풀이 방법
1 2 3 4 5 손가락 번호다.
1 2 3 4 5
9 8 7 6
10 11 12 13
17 16 15 14
이렇게 반복된다. 여기서 알 수 있는건 손가락 자릿수마다 특정 숫자를 나눠주면 특정 값들이 반복적으로 나온다는 것이다. 그것은 바로 8인데 보면 손가락 1은 8로 나누면 무조건 나머지가 1이 나온다. 손가락 2는 2와 0이 나오고 3은 3과 7 이렇듯 총 정리 해보면
1 - 1/ 2 - 2, 0 / 3- 3, 7(3번째는 4로 나눴을 경우 전부다 3이 나온다.) / 4 - 4, 6 / 5 - 5 이렇다.
if문에 조건을 8로 나눠서 나머지가 1이면 1출력 / 2, 0이면 2 출력 이런 식으로 하면 된다.
하지만 필자는 여기서 조건을 최대한 줄여보기 위해 8로 나눴을경우 나머지가 그 손가락 숫자 값이 되는 1 2 3 4 5는 조건에 넣지 않고 0, 7, 6만 조건에 넣고 나머지는 N % 8로 출력시켜버렸다. 참고로 3과 7은 따로 조건을 만들었다. 코드는 이렇다.
-풀이-
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 N = Integer.parseInt(br.readLine()); //0일때 2, 6일때 4, 4로 나눠서 3이 나오면 3, 이 조건들이 다 안맞으면 N%8 출력 if(N % 8 == 0) { System.out.println(2); }else if(N % 4 == 3) { System.out.println(3); }else if(N % 8 == 6) { System.out.println(4); }else { System.out.println(N % 8); } } }
-결과-
아직 코딩 공부가 부족한 필자라 설명과 풀이 방법이 많이 미흡할 수 있다. 코딩 고수들은 보시고 문제점이 있다면 댓글로 말해주시면 감사한 마음으로 참고 수정 하겠다.
'백준' 카테고리의 다른 글
[백준/BOJ] 19698번 : 헛간 청약 (JAVA / 자바) (0) 2022.01.28 [백준/BOJ] 17388번 : 와글와글 숭고한 (JAVA / 자바) (0) 2022.01.28 [백준/BOJ] 16486번 : 운동장 한 바퀴 (JAVA / 자바) (0) 2022.01.28 [백준/BOJ] 16431번 : 벤시와 데이지 (JAVA / 자바) (0) 2022.01.28 [백준/BOJ] 16204번 : 카드 뽑기 (JAVA / 자바) (0) 2022.01.28