반응형

공부 261

[Java] 백준알고리즘 #2563 색종이

100 x 100 크기의 도화지에 10 x 10 인 색종이를 붙인 후, 색종이가 붙어 있는 면적을 구하는 문제이다. 먼저 5 x 5 크기의 도화지가 있다고 해보자. 여기에 3 x 3 색종이를 붙여보자. 이를 2차원 배열이라고 하고, 색종이가 붙어 있지 않는 곳은 0, 색종이가 붙어 있는 곳이 1이라고 한다면 다음과 같다. 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 1 1 1 0 0 1 1 1 사각형의 면적은 가로 x 세로 이므로, 색종이가 붙어 있는 곳의 면적은 9가된다. 위 2차원 배열에서 1인 부분의 수를 세어보면 똑같이 9가 되는 것을 알 수 있다. 따라서 이 문제는 100 x 100 크기의 2차원 배열을 만든 후, 색종이가 붙는 위치에 값을 1로 변환시켜 주면 간단히 구할 수 있..

[Java] 백준알고리즘 #10798 세로읽기

5줄을 입력받아 세로로 읽어 출력하는 문제. abc de f gh ijk 이라면 adfgibehjck 가 되겠다. 각 문자들은 줄 단위로 입력되므로 nextLine()함수를 통해 입력받아 이를 이차원 배열에 저장한다. String[] ary = new String[5]; char[][] result = new char[15][5]; for (int i = 0; i < 5; i++) { ary[i] = sc.nextLine(); for (int j = 0; j < ary[i].length(); j++) { result[j][i] = ary[i].charAt(j); } } 이때 이차원배열은 15행 5열 으로 한다. (입력받은 문자의 최대가 5행 15열이기 때문) for (int i = 0; i < 15; i..

[Java] 백준알고리즘 #2566 최댓값

이차원 배열을 입력받고 최댓값과 그 최댓값이 위치한 행, 열의 값을 구하는 문제이다. int[][] ary = new int[9][9]; int max = -1; int row = 0; int col = 0; 위와 같이 9x9 크기의 배열을 만들고, 최댓값을 저장할 max, 행을 저장할 row, 열을 저장할 col 변수를 선언한뒤, 반복문을 통해 81개의 문자를 입력받으면서 최댓값과 비교하여 크다면 max에 해당 수를 넣으면 된다. 다만 여기서 주의할 점은 최댓값을 저장할 max 함수를 -1로 초기화 한 것인데, 이는 모든 수가 0인 경우를 대비하기 위함이다. 전체 코드는 다음과 같다. import java.util.Scanner; public class Main { public static void m..

[Java] 백준알고리즘 #1316 그룹 단어 체커

문제의 조건에 부합하는 그룹 단어의 갯수를 출력해주는 프로그램을 작성해보자. 그룹단어의 조건에 포함되지 않는 것은 어떤 알파벳이 연속적으로 나오지 않는 경우이다. ex) aaaabbbbccccdddda => a,b,c,d 모두 연속적으로 나오나 a가 맨 뒤에 다시 나오므로 그룹단어가 아님. 이제 우리는 이 단어가 그룹 단어인지 아닌지 판별하기 위해 각 알파벳을 저장해 둘 배열을 만든 후, 각 알파벳의 등장 여부를 판별하는 플래그를 세워 판단하면 되겠다. 이를 위해 배열을 먼저 만든다. boolean[] flag = new boolean[26]; String word = sc.next(); flag[word.charAt(0) - 97] = true; flag 라는 배열을 사용하기 위해 입력받은 문자를 한개..

[Java] 백준알고리즘 #25206 너의 평점은

전공과목, 학점, 전공평점을 입력받고 학점평균을 구하는 문제이다. 먼저 전체 코드를 보자. import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); double sum = 0; double count = 0; for (int i = 0; i < 20; i++) { String object = sc.next(); double val = sc.nextDouble(); String grade = sc.next(); count += val; switch (grade) { case "A+": sum += val * 4.5; break; case "A0..

[Java] 백준알고리즘 #11718 그대로 출력하기

입력받은 문자열을 그대로 출력하는 문제. 입력이 몇줄이나 주어지는지 알 수 없다는 것에만 주의하면 간단히 해결 가능. import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while (sc.hasNextLine()) { String text = sc.nextLine(); System.out.println(text); } sc.close(); } } hasNextLine()함수로 다음에 올 문자열이 있는 경우만 출력해주면 된다.

[Java] 백준알고리즘 #5622 다이얼

다이얼을 돌리는 시간을 구하는 문제. 먼저 아스키 코드표를 보자. 문제에서 대문자로 이루어진 단어가 주어진다고 했으니, 아스키코드표를 활용하면 쉽게 범위를 특정할 수 있다. 입력받은 문자를 한글자씩 잘라 아스키코드 변환 (int형변환)해준 후 각 범위에 따라 시간을 1초씩 추가해주면 된다. import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String a = sc.next(); int time = 0; for (int i = 0; i < a.length(); i++) { int tmp = a.charAt(i) - 65; time += ..

[Java] 백준알고리즘 #2908 상수

두 수를 뒤집은 후 크기를 비교하는 문제. int형으로 처리해서 각 자리수를 구해 붙이는 방법도 있으나 '문자열' 단계 이므로 문자열로 받아서 처리해보자. import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String a = sc.next(); String b = sc.next(); String atmp = ""; String btmp = ""; for (int i = 0; i < 3; i++) { atmp = atmp + a.charAt(2 - i); btmp = btmp + b.charAt(2 - i); } int arev = In..

[Java] 백준알고리즘 #1152 단어의 개수

단어의 개수를 찾는 얼핏 간단해 보이는 문제이다. 공백을 기준으로 단어를 찾기 위해 split()함수를 사용했다. import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String text = sc.nextLine(); text = text.trim(); String[] ary = text.split(" "); System.out.println(ary.length); sc.close(); } } trim() 함수를 이용해 앞뒤 공백을 지우고 split()함수로 공백을 기준으로 잘라 ary 배열에 저장한 후, 이 배열의 길이를 출력해주는 코..

[Java] 백준알고리즘 #10811 바구니 뒤집기

이전에 풀어보았던 바구니안에 공 넣기와 공 바꾸기와 유사한 문제이다. 2023.09.29 - [Java/백준알고리즘] - [Java] 백준알고리즘 #10810 공 넣기 [Java] 백준알고리즘 #10810 공 넣기 바구니에 공을 넣은 후 바구니에 들어 있는 공을 확인하는문제. 먼저 바구니의 수(n)만큼 배열을 만든다. int n = sc.nextInt(); int m = sc.nextInt(); int[] basket = new int[n]; 이후 반복문을 통해 3개의 수를 입 sehyeok.tistory.com 2023.09.29 - [Java/백준알고리즘] - [Java] 백준알고리즘 #10813 공 바꾸기 [Java] 백준알고리즘 #10813 공 바꾸기 공 넣기와 유사한 문제. 오히려 더 간단해졌다..

반응형