본문 바로가기

Baekjoon275

[Baekjoon] 18108 - 1998년생인 내가 태국에서는 2541년생?! 📝 문제 🔓 답안 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int y = sc.nextInt(); System.out.println(y - 543); sc.close(); } } 2022. 11. 13.
[Baekjoon] 2566 - 최댓값 📝 문제 ❗ 주의 처음 답을 제출했을 때, 100%까지 갔다가 "틀렸습니다" 결과가 나왔다. 이것은 여러가지 케이스중 빼먹은게 있다는 것을 의미. 최댓값을 찾는 부분에서 if문 부분을 if(arr[i][j] > max) 라고 작성했었다. 다만 이 경우엔 모든 값이 0일 경우, 답이 0행 0열로 출력된다. if(arr[i][j] >= max) 로 수정해주었다. 🔓 답안 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int[][] arr = new int[9][9]; int i, j; for(i = 0; i < 9; i++){ for(.. 2022. 11. 12.
[Baekjoon] 2738 - 행렬 덧셈 📝 문제 🔓 답안 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int m = sc.nextInt(); int[][] arr1 = new int[n][m]; int[][] arr2 = new int[n][m]; int i, j; // 배열 2개 입력받기 for(i = 0; i < n; i++){ for(j = 0; j < m; j++){ arr1[i][j] = sc.nextInt(); } } for(i = 0; i < n; i++){ for(j = 0; j < m; j++){ arr2[i][j.. 2022. 11. 11.
[Baekjoon] 11659 - 구간 합 구하기 4 📝 문제 ❗ 주의 (이미지엔 나와있지 않지만) 시간제한이 1초이다. (약 1억번 연산) for문으로 합을 구할 때, 최악의 경우 배열의 크기 100,000 합을 구해야 하는 횟수 100,000 100,000 * 100,000 = 10,000,000,000 이므로 1억을 초과한다. 그러므로 합 배열을 사용한다. 🔑 풀이 과정 배열 입력받고, 합 배열도 구하고 실행을 해서 예제입력을 넣었더니 배열범위에 벗어난다는 오류가 나왔다. 천천히 찾아보니 "i 번째 수에서 j 번째 수" 는 첫 시작이 첫 번째 일때, 계산되는 것. 하지만 배열 인덱스는 0부터 시작하니까 첫 번째수(i=1)이면 배열의 인덱스 0을 사용하게끔 해야했다. 그 다음은 i번째부터 j까지면 합 배열이 s일때 s[j-1] - s[i-2] 이라는 수.. 2022. 11. 10.
[Baekjoon] 11720 - 숫자의 합 📝 문제 ❗ 주의 두 번째 줄에 숫자 N개가 공백없이 주어질때, int형이나 long으로 받을수가 없다. 왜냐하면 N이 1이상 100이하의 값을 가지기 때문에, 가질수 있는 범위를 초과한다. (int, long형은 최대 21억까지 표현가능, 21억은 자릿수가 10개) 그러므로 문자열로 받은뒤, 숫자로 변환하는 것을 생각한다. 또한 문자열에서 char형 배열로 바꾼뒤, 바로 더하면 오류가 발생한다. char형을 숫자값으로 변환시키는 과정이 필요하다. 🔑 풀이 과정 문자열로 숫자를 받은 뒤 char형 배열로 변환한다. toCharArray() 메서드를 사용한다. 문자 '0'의 아스키코드는 48, 문자 '1'의 아스키코드는 49... 합계를 구할 때 배열의 각 요소에서 48('0')을 빼준다. for문을 돌때.. 2022. 11. 9.
[Baekjoon] 1546 - 평균 📝 문제 ❗ 주의 출력시 실수형으로 출력해야함. 마지막 평균 연산시 전부 정수로 연산하지 말 것. 🔑 풀이 과정 새로운 평균을 구하는 공식을 계산했다. 총 3번을 풀어서 정답을 받았다. 1번째 2번째 시도도 예제케이스를 잘 출력해서 당황스러웠다. 합계를 구하는 것은 문제가 없는데, 최댓값 or 평균을 구하는 것에서 문제가 있던듯 하다. 아직도 명확히 틀린점을 모르겠지만... 1번째 제출과 3번째 제출의 차이점은 ① 최댓값을 처음 구할때 max = arr[0] 이라 했던 것을 max = 0 으로 초기화함 ② 마지막 출력 값을 double avg = (100 * sum) / n / max 에서 System.out.println(sum * 100.0 / max / n); 로 변경함(전자로 했어도 소수점이 출력.. 2022. 11. 8.