2021/04/27 6

[백준/JAVA] 1110 더하기 사이클

문제 나의 접근 방법 1. 처음 수(N)의 10의 자리와 1의 자리는 10으로 나눈 몫과 나머지이다. 2. 몫과 나머지의 합은 새로운 수의 1의 자리이다. 3. 처음 수(N)의 나머지 값이 새로운 수(M)의 10의 자리이다. 4. 이러한 사이클을 체크하는 카운트 변수(CNT)가 필요하다. 정리하면 아래와 같은 수식이 완성된다. M = ( (N%10)*10 ) + ( ((N/10) + (N%10))%10 ); 주의할 점은 필자는 M을 새로운 수로 두었는데, 실제 반복문 안에서 처음 수(N)를 계속 새로운 값으로 대체하는 것이라 M을 N으로 고친다. while(true){ M = ( (N%10)*10 ) + ( ((N/10) + (N%10))%10 ); } 어렵게 느껴질 수 있지만, 생각해보면 그렇게 어려운..

코딩테스트 2021.04.27

[백준/JAVA] 11021 A+B-7 (StringTokenizer)

문제 풀이 이번에도 BufferedReader와 BufferedWriter를 사용해서 입출력을 구현할 것이다. BufferedReader는 데이터가 한 줄에 담기기 때문에 여러 데이터를 받을 때는 StringTokenizer를 사용한다. 여기서 잠깐🖐 StringTokenizer를 왜 for문 안에 작성하는지 의문이 생길 것이다. 그 이유는 for문을 통해 한 줄씩 데이터가 들어가게 되고, 최종적으로 여러 행의 데이터가 생기기 때문에 각 행 별로 데이터를 쪼개기 위함이다. import java.io.*; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException {..

코딩테스트 2021.04.27

[백준/JAVA] 15552 빠른 A+B (BufferedWriter)

문제 이전 A+B-3 문제와 똑같지만 시간 제한이 존재한다. 따라서, 문제에서 언급한 BufferedReader와 BufferedWriter를 사용해서 풀어야한다. 여기서 잠깐🖐 BufferedWriter? BufferedWriter는 BufferedReader와 함께 빠른 입출력 퍼포먼스를 낸다. 사용하는 방법은 다음과 같다. // BufferedWriter 선언 BufferedWriter br = new BufferedWriter(new OutputStreamWriter(System.out)); // 출력할 문자열 String str = "abcdef"; // 출력 bw.write(str); // 줄바꿈 bw.newLine(); // 버퍼에 남아있는 모든 데이터 출력 bw.flush(); // 닫기 ..

코딩테스트 2021.04.27

[백준/JAVA] 10950번 A+B-3

문제 나의 접근 방법 테스트 케이스 개수(T)를 크기로 갖는 배열을 하나 만들어야겠다. (for A+B 값 저장) 기본적인 for문 문제이기 때문에 어려움은 없었다. 풀이 - scanner 사용 import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); // 테스트케이스 개수 입력받기 int n = sc.nextInt(); // 개수만큼의 크기를 가진 배열 생성(=왼/오 값이 담긴 변수가 될 것임) int arr[] = new int[n]; // 테스크케이스 개수 만큼 값 왼,오 값 받기 for(int i=0; i

코딩테스트 2021.04.27

[백준/JAVA] 2884 알람 시계

문제 나의 접근 방법 단지, 45분전의 시간만 구하면 되는 것이다. 1. 만약 입력받은 분이 45분보다 작다면 시간은 -1이 되며, 45분전의 시간의 분(M)은 기존의 분 +15분이 된다. 1-1. 이렇게 생각한 이유 2. 시간이 0보다 작아진다면 해당 시간을 23으로 설정하면 된다. 두 가지 입력 방법을 가지고 해결해보자 - Scanner 사용 (소요시간 256ms) import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int H = sc.nextInt(); int M = sc.nextInt(); // 분이 45분보다 작다면 if(M

코딩테스트 2021.04.27