안녕하세요. 이번에 해볼건 1차원 배열 문제입니다. 1. 예제 입력은 1~30의 숫자 중 출석한 인원의 숫자를 입력합니다. 2. 출력은 입력하지 않은 숫자가 나오면 됩니다. 다양한 방법이 있겠지만, 저는 boolean을 사용하여 해결하였습니다. package coding; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); // 입력할 수 있게 scanner 선언 boolean stuChk[] = new boolean[31]; // 출석한 학생을 확인하기 위해 boolean 형태로 배열 선언 for(int i = 0; i < 28; i+..
공략 순서 1. N바구니는 1번 부터 N번까지 번호가 매겨져 있다. -> N = 5라면 "1, 2, 3, 4, 5" 2. 바구니에는 공이 1개씩 들어있음 3. 처음에는 바구니에 적혀있는 번호와 같은 번호가 적힌 공이 들어있다. -> 2번 바구니면 2 4. 바구니에 담긴 공을 교환 의 형식으로 코드를 작성할면 되겠습니다. import java.util.Scanner; /** * Main */ public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); int M = sc.nextInt(); int[] arr = new int[N]; int temp; //..
https://www.acmicpc.net/problem/10809 10809번: 알파벳 찾기 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출력한다. 단어의 첫 번째 글자는 0번째 위치이고, 두 번째 글자는 1번째 위치이다. www.acmicpc.net 문제 문제의 난이도는 어렵지 않다. ※ 주의할 점 입력으로 주어지는 문자열은 알파벳 소문자로만 이루어져 있다. a ~ z 를 모두 출력하여 주어진 문자열에 대해 해당 문자가 처음으로 나오는 위치를 출력한다. 위치는 0 부터 시작한다. 즉 문자열 첫 단어는 위치가 0 이다. 2가지 풀이 방법을 제시한다. ..
해당 문제는 너무 쉬운 문제입니다. package test; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); String num = sc.next(); int sum = 0; for(int i = 0; i < N; i++) { sum += (int)num.charAt(i) - '0'; } System.out.println(sum); } }
문제 이해 이번 문제는 한수를 찾는 문제였습니다. 문제의 설명대로 한수는 각 자리가 등차수열 이루는 수이고 등차수열은 연속된 두개의 수가 일정한 수열을 말합니다. 예를 들어 753 같은 경우 각 자리를 7, 5, 3으로 보고 -2씩 일정하게 감소하고 있습니다. 그리고 여기서 -2를 공차라고 합니다. 다른 예로는 222이 있는데 이 경우는 공차가 0입니다. 이러한 수를 한수라 하고 이 한수의 개수를 찾는 문제입니다. 여기서 1~9까지는 기본적으로 비교할 숫자가 없으므로 한수로 보는듯 합니다. 거기에 더해 10~99까지도 공차는 존재하지만 비교할 대상이 없으므로 한수로 치는거 같습니다. (문제에서 110을 입력했는데 99가 나온걸로 보아 1~99까지를 한수로 친거 같습니다.) 이 전재를 기본으로 깔고 문제를..
이번에 풀어볼 문제는 OX퀴즈 풀이입니다. 해당 문제를 풀면서 데이터를 변환하는 과정에서 시행 착오를 겪었습니다. 풀고 나면 쉬운 문제인 것 같습니다. 해당 문제에 대한 풀이 입니다. 1. 먼저 테스트 케이스의 개수가 주어져야 하기 때문에 테스트 케이스 개수를 입력 받습니다. 2. 저는 String 배열인 tcase 배열의 크기를 테스트 케이스 개수로 설정하였습니다. 3. tcase 배열안에 OX 예제를 입력 받습니다. 4. 입력받은 데이터를 가공해야 하는데 저는 char 형태로 1개씩 뽑아 O인지 비교를 했습니다. 5. 그 후 데이터가 O이면 plus = plus + 1 해주고 count += plus 처리를 했습니다. 그러면 O가 한개이면 +1이고 2개이면 plus는 +2가 되고 count + plu..
안녕하세요. 이번에는 백준 1546번 풀이 문제를 가져 왔습니다. 해당 문제입니다. 일단 이해를 돕기 위해 글로 풀이를 써보겠습니다. 1. 먼저 첫째 줄에 시험 본 과목의 개수 N이 주어진다라고 했으니 입력받는 값이 있어야 합니다. 2. 2번째 줄에 입력을 한줄로 한 것으로 보아 배열에 담아 주겠습니다. int n = in.nextInt(); int[] obj = new int[n]; 그러면 해당 형태로 담아질 것 같습니다. 3. 그 뒤에 for문으로 입력 값을 배열에 담아주고 4. 최대값을 골랐다라고 했으니 이제 최대값을 구해보겠습니다. 최대값도 마찬가지로 배열에서 하나씩 꺼내서 for문으로 비교해주면서 구해줍니다. 5. 최대값 비교가 완료되었으면, 모든 점수/M(최대값)*100으로 고쳤다고 쓰여있습니..
EOF란 컴퓨팅에서 파일의 끝(End of FIle)을 나타내며 데이터 소스로부터 더이상 읽을 수 있는 데이터가 없음을 나타냅니다. 자바에서는 대표적인 입력 클래스로 Scannner, BufferedReader가 있는데 각각의 EOF 처리 방법은 다음과 같습니다. [Scanner] Scanner sc = new Scanner(System.in); while(sc.hasNextLine()) { sc.nextLine(); } while(sc.hasNextInt()) { sc.nextInt(); } [BufferedReader] BufferedReader br = new BufferedReader(new InputStreamReader(System.in); String input = ""; while((inp..