Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 코드트리 챌린지
- IT 좀 아는 사람
- 1931번
- JPA
- 행복한 수열의 개수
- 공부 기록
- 공부하기 싫어 #그래도 해야해
- 최장 공통 부분수열
- 백준 #1010 #다리놓기
- til
- eager
- 백준
- 지연로딩
- TagLibraryValidator
- spring
- 동적 계획법
- 코딩테스트실력진단
- 구름톤
- 구름톤 챌린지
- Today I Learned
- 1005 #ACM craft #백준
- 금 채굴하기
- @EntityGraph
- 즉시로딩
- 회의실 배정
- 코딩테스트
- 멀록 조명등
- 구름톤 트레이닝
- 완전탐색
- 코드트리
Archives
- Today
- Total
화분
[구름톤 챌린지 9일차]폭탄 구현하기(2) 본문
소개
이번 문제는 N * N 크기의 2차원 배열에 K개의 폭탄이 떨어지면 상하좌우 그리고 가운데에 점수가 올라간다. 특이점은 @인 자리는 2점씩 올라가고 #인 자리는 점수가 안 오른다. 빅오표기법을 사용하면 O(K)여서 시간초과를 걱정해야 하는 문제는 아닌거 같다. 코드는 다음과 같다.
import java.io.*;
class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] NK = br.readLine().split(" ");
int N = Integer.parseInt(NK[0]);
int K = Integer.parseInt(NK[1]);
String[][] board = new String[N][N];
int[][] result_board = new int[N][N];
int[] URDL_ROW = {0, -1, 0, 1, 0};
int[] URDL_COL = {0, 0, 1, 0, -1};
for(int i = 0; i < N; i++){
board[i] = br.readLine().split(" ");
}
for(int i = 0; i < K; i++){
String[] RC = br.readLine().split(" ");
int board_row = Integer.parseInt(RC[0]) - 1;
int board_col = Integer.parseInt(RC[1]) - 1;
for(int URDL = 0; URDL < 5; URDL++){
int point_r = URDL_ROW[URDL] + board_row;
int point_c = URDL_COL[URDL] + board_col;
if(point_r < 0 || point_r >= N || point_c < 0 || point_c >= N)
continue;
if(board[point_r][point_c].equals("0"))
result_board[point_r][point_c] += 1;
else if(board[point_r][point_c].equals("#"))
result_board[point_r][point_c] += 0;
else if(board[point_r][point_c].equals("@")){
result_board[point_r][point_c] += 2;
}
}
}
int max = 0;
for(int i = 0; i < N; i++){
for(int j = 0; j < N; j++){
max = (result_board[i][j] > max) ? result_board[i][j] : max;
}
}
System.out.println(max);
}
}
어려웠던 점
문제가 제출된지 24시간이 경과하기까지 1,2시간 정도 남았을때 풀기 시작했던 문제인데 1분의 차이로 오류를 수정하지 못해서 24시간 내 풀이를 완료하지 못했다...ㅠㅠ 오류는 문자열을 비교할때 ==을 사용해서 fail이 발생한거 같다. 문자는 equals()로 비교해줘야 하는 경우가 대다수인거 같다.
느낀 점
구름톤 챌린지를 진행하면서 이런저런 실수도 많이 하고 그랬는데 그런 과정에서 성장하고 있다고 느끼고 있다. 한편으론 자신감도 조금 오른거 같다.
'Study > CODINGTEST' 카테고리의 다른 글
[코드트리 챌린지] 사전 과정 (0) | 2023.08.30 |
---|---|
[구름톤 챌린지 10일차] GameJam (0) | 2023.08.26 |
[구름톤 챌린지 4일차]완벽한 햄버거 만들기 (0) | 2023.08.20 |
[구름톤 챌린지 5일차] 이진수 정렬 (0) | 2023.08.19 |
[9251]LCS (0) | 2022.02.16 |