프로그래밍-학습기록/코딩테스트 35

백준 온라인 저지 | 2562 | 배열: 최댓값

문제 (https://www.acmicpc.net/problem/2562) 나의 풀이 쉬웠다! 같은 숫자면 어떡할까? 라고 생각하던 찰나, 조건에 서로 다른 숫자라서 안심했다. package baekjunOnlineJudge; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Bj_2562 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int[] numberList = ne..

백준 온라인 저지 | 10818 | 1차원 배열: 최소, 최대

문제 나의 풀이 package baekjunOnlineJudge; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; public class Bj_10818 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new O..

백준 온라인 저지 | 10996 | 별 찍기 - 21

문제 나의 풀이 나는 가장 처음에 *이 출력되고, 두 번째부터 공백과 *이 함께 찍힌다고 인식했다. 그 찍히는 방식은 입력된 숫자가 홀짝이냐에 따라 달라진다. 그리고 그렇게 출력된 두 줄이 입력된 숫자만큼 반복된다. package baekjunOnlineJudge; import java.util.Scanner; public class Bj_10996 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); for(int i=0; i

백준 온라인 저지 | 2446 | 별찍기 - 9

시간이 촉박하게 풀 때는 잘 안 풀리고 죽을 것 같았는데, 다음 날 정신 멀쩡할 때 노트에 별 찍기 그림과 표를 그리면서 하니 잘 풀렸다. 이중 for문 하나로 별의 증가와 감소를 나타낼 수 없었다. 별의 증가와 감소를 나타내기 위해 이중 for문이 두 개 필요했고, 이중 for문 안에 공백을 찍는 for문도 별도로 필요했다. 내가 생각할 때 이 문제 풀이의 핵심은 1) 빠르게 이중 for문 두 개가 필요하다는 것을 알아채는 것이고 2) for문의 조건문을 적절히 결정하는 것이다. package baekjunOnlineJudge; import java.util.Scanner; public class Bj_2446 { public static void main(String[] args) { Scanner ..

백준 온라인 저지 | 10871 | 실습: 세 수

어려웠다. 쉽게 풀 수 있을 줄 알았다가 혼났다. 1시간 동안 못 풀고 다른 사람 풀이를 봤다. 다른 사람의 풀이 (출처: https://ggmouse.tistory.com/281) package baekjunOnlineJudge; import java.util.Scanner; public class Bj_10817 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int[] input = new int[5]; int tmp = 0; for(int i=0; i

백준 온라인 저지 | 5543 | 실습: 상근날드

나의 풀이 쉬웠다. 배열에 순서대로 입력을 하고 최솟값을 찾아내는 방법만 알면 된다. 햄버거 중에 가장 작은 것과 음료수 중에 가장 작은 것을 더하는 방식으로 풀었다. package baekjunOnlineJudge; import java.io.*; public class Bj_5543 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int cheapestBurger = 2000; int cheapestBeverage = 2000; int menu[] = new int[5]; for(int i=0; i

백준 온라인 저지 | 10039 | 실습: 평균점수

나의 풀이 한 줄에 여러 값을 입력 받는 것이 아니라서 bufferedReader를 쓰지 않았다(그냥 빨리 풀고 싶었다). scores 라는 크기 5개 짜리 배열을 만들어 차례로 점수를 집어넣었고, 넣고 난 다음 바로 점수 크기 검사를 하여 40점 미만이면 40점으로 점수를 바꿨다. 반복문 안에서 동시에 점수 총합을 계산한 다음 출력할 때 scores 배열의 크기(5)로 나누어 평균 점수를 구했다. package baekjunOnlineJudge; import java.util.Scanner; public class Bj_10039 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int scores[] = ne..

백준 온라인 저지 | 1110 | while문: 더하기 사이클

나의 풀이 어려웠다. 푸는 시간을 정확히 계산해 보진 않았지만 2시간 정도 걸렸던 것 같다. 자료형을 원하는대로 변환시켜 주어진 연산을 잘 수행할 수 있느냐가 가장 중요했다고 생각한다. 아직 다른 사람의 풀이를 보지 않았지만 나는 다음과 같이 풀었다. Scanner로 입력값을 '문자열'로 받고 분리하고 정수로 바꾼다. 정수로 바꾼 값을 더한 다음, 그것의 일의 자리를 숫자를 문자열로 바꾼다. 2번의 숫자를 이전의 입력값의 오른쪽 숫자와 결합한다. 이 과정을 반복하여 첫 입력값과 똑같이 나올 때까지 반복한 횟수를 출력한다. 주의해야 했던 점은 일의 자리 숫자가 입력되거나 결합했을 때 '01', '03' 같이 십의 자리에 '0'이 오는 경우였다. 일의 자리 숫자가 입력되면 앞 자리에 '0'을 붙이는 공정을 ..

백준 온라인 저지 | 10951 | while문: A + B - 4

이 문제로 새로 배운 것이 많았고 동시에 모르는 것도, 알아봐야 할 것도 많이 생겼다. 새로 배운 것: - while 안 조건문 안에서 변수에 값을 넣고 참/거짓 판단이 가능하다. - StringBuilder, StringTokenizer 클래스 의문으로 남은 것: - 왜 BufferedReader에서 엔터(Enter)를 눌러 아무것도 입력하지 않은 다음 readLine()을 하면 null이 나오지 않는 것일까? 그런데 또 백준 온라인 저지에서는 통과됐다. ( NoSuchElementException 예외가 발생한다 ) 알아봐야 할 것: - toString 메서드 문제: 풀이: package baekjunOnlineJudge; import java.io.BufferedReader; import java...

백준 온라인 저지 | 10952 | while문: A+B - 5

나의 풀이 while문의 조건을 'A와 B가 동시에 0이다'의 부정형인 'A가 0이 아니거나 B가 0이 아니다'로 두고 풀었다. package baekjunOnlineJudge; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; public class Bj_10952 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamR..