Problem Solving 19

[백준/JAVA] 14503 - 로봇 청소기

문제 정보https://www.acmicpc.net/problem/14503 문제 코드/* * 청소: -1, 청소x: 0, 벽:1 */public class Main { // 방향벡터 (북:0, 동:1, 남:2, 서:3) static int[] dx = new int[] {-1, 0, 1, 0}; static int[] dy = new int[] {0, 1, 0, -1}; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.read..

[백준/JAVA] 7562 - 나이트의 이동

문제 정보https://www.acmicpc.net/problem/7562 문제 코드public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuilder(); // 8방향 벡터 int[] dx = new int[] {-2,-1,1,2,-2,-1,1,2}; int[] dy = new int[] {-1,-2,-2,-1,1,2,2,1}; int tc = Integer.parseInt(br.readLine()); // 테스트 ..

[백준/JAVA] 1697 - 숨바꼭질

문제 정보https://www.acmicpc.net/problem/1697 문제 코드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 n = Integer.parseInt(st.nextToken()); // 수빈이의 위치 int m = Integer.parseInt(st.nextToken()); // 동생의 위치 boolean[] visited = new ..

[백준/JAVA] 17143 - 낚시왕

[문제 포인트]1) 상어의 이동을 어떻게 처리할까? (상어를 1번씩 이동시키면 약 O(10^9)으로 시간초과ㅠㅠ)다시 같은 방향 +제자리로 올때까지 얼마나 걸리는가? => 이 시간이  반복되는 크기 임!!! 즉 상어를 1번씩 반복하며 모두 이동시키는게 아닌,   시간이동 을 통해 이동시간 단축시킬 수 있음!! %연산을 이용 해서 줄여주면, 시간 ↓ : 상↔하는 %2*(row-1)을 이용하고, 좌↔우는 %2*(col-1)을 이용함 2) 배열의 인덱스를 벗어났을때 이동방향을 어떻게 바꿀까?방향(dir)을 -1해서 임시 보정 : 상(0), 하(1), 우(2), 좌(3)해당 방향(dir)을  1과 XOR연산(^= 1) 하면  상↔하 또는 좌↔우로 바뀜다시 방향(dir)을 +1해서 보정한 값 되돌림 : 상(1),..

[백준/JAVA] 19539 - 사과나무

[문제 포인트]+1물뿌리개와 +2물뿌리개는 무조건 동시에 사용되어야 함 => " 전체 기대 높이의 합이 3의 배수 "여야!! (∵한 번 물 뿌리면 총 높이 +3 증가) 물을 뿌린 횟수(전체 기대 높이의 합 / 3) = +1물뿌리개를 뿌린 횟수 = +2물뿌리개를 뿌린 횟수  일단 +2물뿌리개를 최대로 사용 하도록 하자!!=> +2물뿌리개를 사용해야하는 횟수에서 1개를 빼서, +1물뿌리개를 사용해야하는 횟수에 2개를 더해주면, 균형 맞출 수 O?!+1물뿌리개를 반드시 사용해야하는 횟수 ≤ +2물뿌리개를 사용할수도 있는 횟수1) 기대 높이가 홀수일 경우 : +1물뿌리개를 무조건 1번 사용해야함. 나머지를 절반으로 나눈( /2)만큼은 +2물뿌리개 사용 가능2) 기대 높이가 짝수일 경우 : 기대높이를 절반으로 나..

[백준/JAVA] 2493 - 탑

[문제 포인트]가장  최근 의 자기 보다 높이가 큰 탑이 무엇인지 찾는것!! => "스택" 힌트어떻게 스택의 push와 pop 연산을 사용할지 생각!!! [문제 풀이]1) 스택이 비어있는 경우(stack.isEmpty())=> 0을 출력하고, 현재 원소를 스택에 push!! 2) 스택이 비어있지 않은 경우(!stack.isEmpty())2-1) 스택의 top 원소 > 현재 원소 => 스택의 top 원소의 인덱스를 출력하고, 현재 원소를 스택에 push!!2-2) 스택의 top 원소 스택에서 pop!! => 다시 1)인지 2)인지로.. 반복... import java.io.*;import java.util.*; public class Main { public static void main(S..