728x90
교훈: 문제를 자세하게 읽자..
문제집
★는 다시 풀어야 하는 문제 입니다.
2738번: 행렬 덧셈
import java.util.*;
import java.io.*;
public class Main {
public static void main (String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st.nextToken());
int M = Integer.parseInt(st.nextToken());
// 행렬 만들기
int[][] arrayA = new int[N][M];
for (int i = 0; i < N; i++) {
st = new StringTokenizer(br.readLine());
for (int j = 0; j < M; j++) {
int number = Integer.parseInt(st.nextToken());
arrayA[i][j] = number;
}
}
int[][] arrayB = new int[N][M];
for (int i = 0; i < N; i++) {
st = new StringTokenizer(br.readLine());
for (int j = 0; j < M; j++) {
int number = Integer.parseInt(st.nextToken());
arrayB[i][j] = number;
}
}
// 행렬 더하기
for (int i = 0; i < N; i++) {
for (int j = 0; j < M; j++) {
bw.write(arrayA[i][j] + arrayB[i][j] + " ");
}
bw.write("\n");
}
bw.flush();
}
}
2566번: 최대값
문제에서 81개의 자연수 또는 0이라고 명시를 해놓았는데..
왜 int max = Integer.MIN_VALUE; 를 사용해야 되는지 이해가 되지 않는다.
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int max = Integer.MIN_VALUE;
int row = 0;
int column = 0;
for (int i=1; i<=9; i++) {
StringTokenizer st = new StringTokenizer(br.readLine());
for (int j=1; j<=9; j++) {
int number = Integer.parseInt(st.nextToken());
if (number > max) {
max = number;
row = i;
column = j;
}
}
}
bw.write(max + "\n");
bw.write(row + " " + column);
bw.flush();
}
}
★ 10798번: 세로읽기
- 고민하다가 결국 정답을 봤따...
import java.util.*;
import java.io.*;
public class Main {
public static void main (String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
// 이렇게도 할 수 있네...
String[] lines = new String[5];
for (int i = 0; i < 5; i++) {
lines[i] = br.readLine();
}
for (int i=0; i<15; i++) {
for (int j=0; j<5; j++) {
if (i < lines[j].length()) {
bw.write(lines[j].charAt(i));
}
}
}
bw.flush();
}
}
★ 2563번: 색종이
- 고민하다가 결국 정답을 봤따...
import java.util.*;
import java.io.*;
public class Main {
public static void main (String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int[][] answer = new int[100][100];
int N = Integer.parseInt(br.readLine());
for (int i=0; i<N; i++) {
StringTokenizer st = new StringTokenizer(br.readLine());
int x = Integer.parseInt(st.nextToken());
int y = Integer.parseInt(st.nextToken());
// 주어진 색종이 크기만큼 1로 색칠
for (int j=x; j<x+10; j++) {
for (int k=y; k<y+10; k++) {
answer[j][k] = 1;
}
}
}
int sum=0;
for (int i=0; i<100; i++) {
for (int j=0; j<100; j++) {
if (answer[i][j] == 1) {
sum++;
}
}
}
bw.write(sum + "");
bw.flush();
}
}
'프로그래밍 > 코딩테스트' 카테고리의 다른 글
[백준] 스택 큐 덱 문제집 (0) | 2024.11.22 |
---|---|
[백준] 일반 수학 1 문제집 (0) | 2024.11.21 |
[백준] 1차원 배열 문제집 (완료) (0) | 2023.08.04 |
[탐색] 이진 탐색(Binary Search) (0) | 2023.08.02 |
[정렬] 병합 정렬(merge sort) (0) | 2023.08.02 |