본문 바로가기

반응형

Projects

(71)
백준 3444번 자바 문제 평균은 되겠지 package bj4344; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int testcase = sc.nextInt(); int[] arr; // numStu만큼의 array를 만든다. for(int i=0;i
백준 8958번 자바 문제 OX퀴즈 문제를 잘못 읽고 OX에서 O의 갯수를 세는 프로그램을 짰다. 그런데 그 마저도 완벽하지가 않다. 5 OOXXOXXOOO OOXXOOXXOO OXOXOXOXOXOXOX OOOOOOOOOO OOOOXOOOOXOOOOX 이러한 인풋을 넣었을 때, 처음이 영이 나오고, 나머지 4개가 옳게 나온다. 그러니까 처음에 집어넣은 5까지 arraylist화 시켜버린 셈인데, 아직 정확히 왜 그렇게 되는 지 알 수 없다. import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.Scanner; public class Main { public static void main(String[] args) {..
백준 1546번 자바 평균 import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); double arr[] = new double[sc.nextInt()]; for(int i = 0; i < arr.length;i++) { arr[i] = sc.nextDouble(); } sc.close(); double sum = 0; Arrays.sort(arr); for(int i = 0; i < arr.length;i++) { sum += ((arr[i]/arr[arr.length-1]) * 100); } System.out.prin..
백준 3052번 자바 문제 나머지값 구하기 10가지의 숫자를 42로 나누고 남은 값을 리스트에 저장한다. 10번 입력해야 하므로, 10번의 반복문을 사용한다. 각각 얻어진 값의 중복되지 않는 값을 확인할 수 있는 해쉬셋에 집어넣고, 해쉬셋의 크기를 확인하여 변수에 대입한다. 출력한다. package bj3052; import java.util.ArrayList; import java.util.HashSet; import java.util.Scanner; import java.util.Set; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); ArrayList same = new ArrayList(); Set sameSet ..
백준 2577번 자바 문제 숫자의 개수 알고리즘 문제를 풀 때는 확실히 프로그램상으로 실제로 어떻게 답을 도출해낼 수 있는 지를 생각하고 이후 코드를 짜는 것이 중요함을 느낀다. 단계적인 로직을 따른다. A, B, C가 입력되어야 하므로, 스캐너를 이용해 입력값을 받는다. 이후 A*B*C를 하는데, 이는 문제의 조건에 해당하므로, for문이나, 최종 프린트문에 들어가지 않아도 되므로 메인 함수에 작성한다. 숫자를 각각 세기 위해서는 숫자를 나눠야 하므로, 나눌 수 있는 단위인 스트링으로 형변환해준다. 형변환한 숫자를 하나씩 나눌 수 있는 함수를 사용하여 new arraylist 안에 넣어준다. 실제로 출력해야 하는 부분에 해당하는 1~9의 사용개수를 세기 위해 i = 0; i < 10까지 조건을 맞춰주고 리스트 안에 원소 개수를 세어주는 co..
백준 2562번 자바 문제 최대값의 인덱스 가져오기 주어진 값들의 리스트의 최대값을 구하고 그것의 인덱스를 구하는 문제이다. 다만 여기서 힌트는, 인덱스는 0부터 시작하므로, 사람이 세는 몇 번째 숫자에 해당하는 숫자인가라고 했을 때는 1을 더해줘야 한다. 영문으로 how to get index of arraylist in java 라는 식으로 검색했고, 이것과 같은 사이트가 나왔다. import java.util.ArrayList; import java.util.Collections; import java.util.Scanner; public class Main { public static void main(String[] args) { // 9개의 입력값을 가져온다. // 9개의 입력값 중에서 최대값을 찾는다. // 최대값의 인덱스를 가져온다. Sca..
백준 10818번 자바 문제 최소 최대값 어느 정도 중괄호 위치에 대한 이해가 잡혔다. 왜 어떤 변수는 위에서 잡아둬야 하고, 왜 어떤 변수는 for문에서 해야 하는가. 피라미드처럼 레이어 단위로 이해하면 이해하기가 쉽게 된다. 아래부터 패키지, 클라스, 메인함수, 이후 반복문 조건문 등으로 높은 레이어로 갔다가, 이후 다시 출력을 해야 할 때, 프로그램을 종료할 때는 낮은 레이어로 돌아간다. 문제에서 말하듯이 입력 줄이 두 줄이라면 우선 스캐너가 두 번 들어가야 하는데 이 위치를 알고 구현해야 한다. 최우선 조건이 되는 N의 경우는 코드의 맨 처음에 받을 수 있어야 하는 것이 당연하고, 이후 두 번째 줄에서 N이라는 조건만큼 하려면, N만큼 반복되는 반복문이 실현되어야 한다. 그러면 자연스레 반복문 안에 두 번째 스캐너가 들어가게 되고, 입력..
백준 1110번 자바 문제 더하기 사이클 구하기 브론즈1 문제인데, 처음 문제 독해하는데 문제가 있다가 어쨌든 이해를 하고 풀려고 코딩을 했다. 읽어보니, 문자열과 정수 간 형변환을 시기적절하게 하면서 연산만 해주면 되는 문제라고 생각했다. 다만, 나름 제대로 짠 것 같은데 답이 틀리게 나온다. 2022-02-02 오후 3:39 백준에 질문을 올려놨다. 문제 0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, 주어진 수의 가장 오른쪽 자리 수와 앞에서 구한 합의 가장 오른쪽 자리 수를 이어 붙이면 새로운 수를 만들 수 있다. 다음 예를 보자. 26부터 시작한다. 2+6 = 8이다. 새로운 수는 68이..

반응형