코딩 테스트/백준 23

[백준] 2720번: 세탁소 사장 동혁 (브론즈3, JAVA)

문제 링크 : https://www.acmicpc.net/problem/2720 [백준] 2720번: 세탁소 사장 동혁 (브론즈3, JAVA) 아래의 코드는 dfs 메소드를 구현하기 전 입니다. 거스름돈을 몇개 받았는지 확인할 쿼터, 다임, 니켈, 페니의 인스턴스 변수를 생성하고, 사용자로부터 테스트 케이스 수(T)와 거스름돈(C)를 입력받고 dfs 메소드를 실행합니다. public class Main { int quarter; int dime; int nickel; int penny; public static void main(String[] args) { Scanner sc = new Scanner(System.in); int T = sc.nextInt(); Main main = new Main();..

[백준] 1026번: 보물 (실버4, JAVA)

문제 링크 : https://www.acmicpc.net/problem/1026 1026번: 보물 (실버4, JAVA) 해당 문제는 (낮은 A값) * (높음 B값) 을 반복하며 계산하면 S의 최솟값을 구할 수 있습니다. 다만 이 문제에서는 함정(?)이 있는데 B에 있는 수는 재배열을 하면 안된다고 적혀있지만, 채점기에서는 B의 수를 재배열 했는지 판단을 할수가 없어서 재배열하고 문제를 풀어도 통과됩니다(......) 반환할 변수 S를 선언 및 초기화 하고, 사용자로부터 숫자를 입력 받습니다. 단, 숫자를 입력 받을 때 공백을 기준으로 String 배열로 만든 후 int 배열로 변환 합니다. BufferedReader br = new BufferedReader(new InputStreamReader(Sys..

[백준] 1075번: 나누기 (브론즈2, JAVA)

문제 링크 : https://www.acmicpc.net/problem/1075 [백준] 1075번: 나누기 (브론즈2, JAVA) 스캐너로 입력받아 정수 N은 nStr, 정수 F는 f 변수로 입력을 받은 후 입력받은 nStr의 값을 char 배열로 변경 합니다. 이후 변경된 char 배열을 가지고 가장 뒤에 있는 숫자 두개를 0으로 변경했습니다. Scanner sc = new Scanner(System.in); String nStr = sc.nextLine(); int f = sc.nextInt(); char[] arrCh = nStr.toCharArray(); arrCh[arrCh.length-1] = '0'; arrCh[arrCh.length-2] = '0'; 다음으로는 char 배열을 다시 int..

[백준] 15596번: 정수 N개의 합 (JAVA, 자바)

15596번: 정수 N개의 합 (JAVA, 자바) 해당 문제는 각 자기가 제출할 언어의 함수를 만들어 제출하면 됩니다. 제출을 누르고 언어를 Java로 선택하면 아래와 같이 기본적인 class의 틀이 만들어져 있습니다. class Test { public long sum(int[] a) { int ans = 0; return ans; } } 아래와 같이 기본적으로 만들어져있는 틀에서 a 배열의 값을 ans 변수에 모두 담아 리턴시켜주기면 하면 됩니다. class Test { public long sum(int[] a) { int ans = 0; for(int i=0; i

[백준] 4344번: 평균은 넘겠지 (JAVA, 자바)

4344번: 평균은 넘겠지 (JAVA, 자바) 대략적인 설명은 코드 블럭 안에 넣어 두었습니다. 해당 문제에서 조심해야할 것은 "평균을 넘는 학생들의 비율"에서 "넘는" 것이기 때문에 이상이 아닌, 초과로 계산하여야 합니다. import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int C = sc.nextInt(); // 테스트 케이스 수 입력받기 for(int i=0; i

[백준] 8958번: OX퀴즈 (JAVA, 자바)

8958번: OX퀴즈 (JAVA, 자바) 첫번째 줄에 테스트 케이스의 개수(N)을 입력받은 후 N개만큼의 OX 문자열을 입력 받습니다. 그 후 중첩 반복문을 통해 OK 문자열의 길이만큼 반복하여 첫 글자가 O일 경우 카운트를 추가시켜 연속된 숫자일 경우 +된 상태로 스코어와 함께 추가 해주고, X일 경우 연속되지 않으니 카운트를 초기화 시켜 다시 1점부터 시작하게 생성합니다. 그대로 반복하여 연속된 숫자일 경우 카운트에 의해 +1점씩 추가, X를 만날경우 카운트가 0이 되어 다시 1점부터 시작을 반복 합니다. import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanne..

[백준] 1546번: 평균 (JAVA, 자바)

1546번: 평균 (JAVA, 자바) 문제 해석이 잘 안되는 것 같네요. 아래와 같이 이해하고 풀었습니다. 첫번째 입력값은 과목 개수(N) 두번째 입력값은 과목 개수(N) 만큼의 점수 ex) 첫번째 줄에서 3개(N) 과목을 입력 받았을 경우 계산 방식 과목1 / 최대점수과목(M) * 100 과목2 / 최대점수과목(M) * 100 과목3 / 최대점수과목(M) * 100 ※ 주의 : int형으로 나눌 경우 소숫점에 의해 값이 0으로 나오기 때문에 float형으로 해주어야 함 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = ..

[백준] 2577번: 숫자의 개수 (JAVA, 자바)

2577번: 숫자의 개수 (JAVA, 자바) 이번 문제는 어쩌다보니 완전히 하드코딩으로 풀어 버렸습니다.... 이게 맞나 싶은 코드지만 우연히 알게된 chars, filter, count로 해보니 덜컥 되어 버렸습니다. chars()는 String의 문자들을 스트림으로 만들어 주고, 필터를 통해 문자 '0'을 새로운 배열로 반환 후 count를 통해 개수를 새어 줍니다. 이렇게 0~9를 반복하여 하나씩 출력하면 String 문자열의 문자를 하나하나 확인 후 카운팅할 수 있습니다. import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int..

[백준] 2562번: 최댓값 (JAVA, 자바)

2562번: 최댓값 (JAVA, 자바) 처음에 for문 하나로 쓰려다가 포기하고 결국 두개로 했습니다. 처음 for문에서 값을 입력 받고, 두번째 for문에서 max와 index를 구했습니다. num 배열에 들어있는 값이 max(0)보다 클 경우 max에 값을, index에 해당하는 i+1 값을 넣으며 배열이 끝날때까지 반복 합니다. index의 값에 i+1을 넣는 이유는, 문제에서 max값의 인덱스 번호가 아니라 몇번째(1~9) 수인지 구하라고 하기때문에 인덱스 번호보다 1을 더 주어야 합니다. import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(Syste..

[백준] 10818번: 최소, 최대 (JAVA, 자바)

10818번: 최소, 최대 (JAVA, 자바) 쉬운 문제일꺼라 생각했는데 아래 부분에서 꾀 많은 시간을 잡아 먹었습니다. 예제 코드로는 정상적인 값으로 출력 되어 어디가 문제인지 몰랐는데, 자세히 보니 입력받은 순서에 따라 else if에 가기 전 if문에도 모두 true가 나와버려 결과값이 엉뚱한 값으로 나와버렸습니다. 두번째로 아래와 같이 입력값 입력받은 후 배열로 변경하고, 오름차순으로 정렬 후 맨 처음 인덱스(0)의 값과, 맨 마지막의 인덱스 값을 가져 왔습니다. N개의 입력값에 5를 입력 받을 경우 배열의 마지막 인덱스는 4가 되므로 -1을 해주었습니다. import java.util.Arrays; import java.util.Scanner; public class Main { public s..