한 달 열대야에 에어컨을 혹사시키고 있다. 에어컨을 매일 틀어 놓기 때문에 전기세 걱정, 에어컨이 고장날까 하는 걱정 등을 수시로 하고 있다. 백수가 이렇게 편하게 지내도 되는걸까... 🤑 집돌이가 집에만 있으니 좋기만 하다 ㅋㅋㅋ 🤣 오랜만에 주말 외출을 했다(저번 주에도 나갔다온건 안 비밀). 주말에 중요한 행사가 있어서 하루 늦은 회고를 작성한다. 8월의 셋 째 주를 되돌아본다.
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) {
try (BufferedReader br = new BufferedReader(new InputStreamReader(System.in))) {
Solution s = new Solution();
System.out.println(s.solution(getInput(br)));
} catch (IOException e) {
throw new RuntimeException(e);
}
}
private static int[][] getInput(BufferedReader br) throws IOException {
String[] dimension = br.readLine().split(" ");
int x = Integer.parseInt(dimension[0]);
int y = Integer.parseInt(dimension[1]);
int[][] field = new int[x][y];
for (int i = 0; i < field.length; i++) {
String[] temp = br.readLine().split("");
for (int j = 0; j < field[i].length; j++) {
field[i][j] = Integer.parseInt(temp[j]);
}
}
return field;
}
}
class Solution {
public String solution(int[][] fabric) {
Calculator c = new Calculator(fabric);
return c.getResult();
}
}
class Calculator {
int[][] fabric;
boolean[][] isChecked;
int[][] directions = {{0, 1}, {1, 0}, {0, -1}, {-1, 0}};
boolean isPercolate = false;
public Calculator(int[][] fabric) {
this.fabric = fabric;
this.isChecked = new boolean[fabric.length][fabric[0].length];
}
public String getResult() {
for (int i = 0; i < fabric[0].length; i++) {
if (fabric[0][i] == 0) {
DFS(0, i);
}
if(isPercolate) return "YES";
}
return "NO";
}
private void DFS(int x, int y) {
isChecked[x][y] = true;
if (x == fabric.length - 1 && fabric[x][y] == 0) {
isPercolate = true;
return;
}
for (int[] direction : directions) {
int nx = x + direction[0];
int ny = y + direction[1];
if (isWithinFabric(nx, ny) && fabric[nx][ny] == 0 && !isChecked[nx][ny]) {
DFS(nx, ny);
}
}
}
private boolean isWithinFabric(int x, int y) {
return 0 <= x && x < fabric.length && 0 <= y && y < fabric[x].length;
}
}
import java.io.*;
public class Main {
public static void main(String[] args) {
try (BufferedReader br = new BufferedReader(new InputStreamReader(System.in))) {
Solution s = new Solution();
System.out.println(s.solution(getInput(br)));
} catch (IOException e) {
throw new RuntimeException(e);
}
}
private static int[] getInput(BufferedReader br) throws IOException {
String[] tokens = br.readLine().split(":");
int num1 = Integer.parseInt(tokens[0]);
int num2 = Integer.parseInt(tokens[1]);
return new int[]{num1, num2};
}
}
class Solution {
public String solution(int[] nums) {
int GDC = getGDC(Math.max(nums[0], nums[1]), Math.min(nums[0], nums[1]));
return nums[0] / GDC + ":" + nums[1] / GDC;
}
private int getGDC(int bigger, int smaller) {
if(smaller == 0) return bigger;
return getGDC(smaller, bigger % smaller);
}
}