728x90
본 알고리즘 풀이는 Routine Study에서 진행하고 있습니다.
https://github.com/ROUTINE-STUDY/Algorithm
저를 포함한 구성원이 대부분 초보이므로, 원하시는분은 언제라도 들어오셔도 좋습니다.
문의는 댓글 바람.
문제 출처 :https://www.acmicpc.net/problem/10709
[문제 설명]
다음 구름이 오는 시간을 구하시오.
[접근 방법]
시간복잡도는 시를 전부 돌아야 하므로 O(WH)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
int H = Integer.parseInt(st.nextToken());
int W = Integer.parseInt(st.nextToken());
char[][] map = new char[H][W];
int[][] predictedCloudMap = new int[H][W];
for (int row = 0; row < H; row++) {
map[row] = br.readLine().toCharArray();
}
for (int row = 0; row < H; row++) {
int columnPointOfNearestCloud = -1;
for (int column = 0; column < W; column++) {
if (map[row][column] == 'c') {
columnPointOfNearestCloud = column;
continue;
}
if (columnPointOfNearestCloud != -1) {
predictedCloudMap[row][column] = column - columnPointOfNearestCloud;
} else {
predictedCloudMap[row][column] = -1;
}
}
}
StringBuilder sb = new StringBuilder();
for (int row = 0; row < H; row++) {
for (int column = 0; column < W; column++) {
sb.append(predictedCloudMap[row][column]);
sb.append(" ");
}
sb.append("\n");
}
System.out.println(sb);
}
}
728x90
반응형
'알고리즘 문제 풀이 > 구현' 카테고리의 다른 글
백준 - 달팽이 리스트(Kotlin) (0) | 2022.02.20 |
---|---|
백준 - 물 주기(Kotlin) (0) | 2022.02.06 |
백준 - 경비원 (0) | 2022.01.17 |
백준 - 수강신청 (0) | 2022.01.09 |
백준 - 송이의 카드 게임 (0) | 2021.12.30 |