본문 바로가기

반응형

ProgramSoliving

(197)
백준 : 18808 스티커 붙이기 https://www.acmicpc.net/problem/18808 18808번: 스티커 붙이기 혜윤이는 최근에 다양한 대회를 참여하면서 노트북에 붙일 수 있는 스티커들을 많이 받았다. 스티커는 아래와 같이 사각 모눈종이 위에 인쇄되어 있으며, 스티커의 각 칸은 상하좌우로 모두 연� www.acmicpc.net 시뮬레이션 + 완탐 문제 한번에 AC를 받지 못했는데 그이유는 문제를 잘읽지 못해서였다. 스티커를 회전시키는 것은 맨위 맨왼쪽부터 서치하면서 모든공간에 이방향으로 못할때만 회전시킬수있다. 즉..... 1,1 에서 정방향스티커가 안된다고 회전시키고 1,1를 탐색하는것이 아니라 1,2 1,3 ... N,M 까지 가보면서 안되면 스티커 방향을 회전시키는 것이다. 스티커[R][C] 크기에 대해서 회전환 ..
백준 : 4889 안정적인 문자열 https://www.acmicpc.net/problem/4889 4889번: 안정적인 문자열 문제 여는 괄호와 닫는 괄호만으로 이루어진 문자열이 주어진다. 여기서 안정적인 문자열을 만들기 위한 최소 연산의 수를 구하려고 한다. 안정적인 문자열의 정의란 다음과 같다. 빈 문자열은 www.acmicpc.net 1. stack이 비웠고 '}' 문자열이면 cnt+1 하고 stack에 바꾼 '{' 를 push 2. stack 이 비지않았고 '}' 만나면 stack pop 3. 나머지는 stack에 '{' push 모든 문자열을 탐색하고나서 stack에 쌓인 사이즈의 절반은 cnt에 더해주면 된다. 이게 가능한 이유를 생각해보자. 1. 바꾸는 경우는 '{' 와 '}' 밖에 없다. stack은 괄호가 제대로 닫혀있..
백준 : 1400 https://www.acmicpc.net/problem/1400 1400번: 화물차 문제 화물차가 출발지 창고에서 짐을 싣고 배송지 창고까지 짐을 운반하려고 한다. 이 도시의 도로망을 나타낸 지도의 예는 다음과 같다. #A##0##1# .#..#..#. .#..#..#. .###2#.B. 도로망에서 차들은 동, �� www.acmicpc.net 처음에는 시간이 필요할것 같은 문제여서 3차원 visitd르 접근하였다. 꾸역꾸역 문제를 풀엇지만 다른사람을 보고 생각지도 못햇던 방향으로 풀어서 적어보려고한다. 1. 3차원 배열을 만들 필요가없다. 이유 : 화물차가 기다리는 곳은 신호가 잇는곳 뿐이다. 따라서 신호앞에서 건너가지 못할겨우만 그 Queue는 그대로 다음 시간대에 보존시켜주면된다. 이렇게하면 최단..
백준 : 16929 https://www.acmicpc.net/problem/16929 16929번: Two Dots 첫째 줄에 게임판의 크기 N, M이 주어진다. 둘째 줄부터 N개의 줄에 게임판의 상태가 주어진다. 게임판은 모두 점으로 가득차 있고, 게임판의 상태는 점의 색을 의미한다. 점의 색은 알파벳 대문�� www.acmicpc.net 1. DFS 탐색은 바로직전 DFS 방향으로 갈수 없다. 2. 같은 문자가 아니면 갈수없다. 3. DFS 바운마다 visit처리를한다. 4. 만약 다음 칸이 visit 처리가됬고 현재 문자와 같은 문자면 ans 값을 성공으로 바꾼다. 1. 번처리는 방향을 static int dy[] = { 1, 0, -1, 0 }; static int dx[] = { 0, 1, 0, -1 }; 이런식..
백준 : 8983 사냥꾼 Y정렬을 생각하다가 가장 중요한걸 생각하지못해다. 문제의 아이디어는 Animal 의 x 위치기준으로 좌 우에 있는 사대만 검사하면된다. 이때 Animal을 x기준으로 정렬한다면 사대위치를 다시 뒤로 볼필요가없다. 따라서 Animal.x를 기준으로 왼쪽에서 가장 가까운 사대위치를 찾고 왼쪽사대와 오른쪽 사대 길이를 비교해서 반환한다. package 삼성; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.Compar..
백준 : 관중석(10166) JAVA 이문제는 완전탐색 문제다. 원을 등분하여 몇번째 자리인지 check 하는 것이 중요하다. 3 번째 높이 관중석에 1번째 관중석의 각도는 1 / 3 이된다. 이것은 6번째 높이의 2 번째 관중석의 각도와 똑같다. 2 / 6 == 1 / 3 최대 2000까지 잇으므로 boolean 배열을 선언해서 gcd를 통해 분수를 기약분수로 나타냇을 때 관중석을 놔둬도 되는지 안되는지 판벼할 수 있다. import java.util.Scanner; public class 관중석 { static boolean View[][] = new boolean[2001][2001]; static int GCD(int a, int b) { // a >= b while (b != 0) { int c = a % b; a = b; b = ..
백준 : 10800 처음 로직은 맞았지만 크기가 2000인줄 착각해서 runtime 에러를 해결하지 못했다. 문제는 크기별로 정렬한뒤 누적사이즈 - 누적컬러사이즈[현재색갈] 을 빼주면 된다. 하지만 문제인것이 같은 색깔의 같은 사이즈가 나온다면 문제가없지만 다른 색깔의 같은 사이즈가나오면 같은 크기는 제거하지 못한다 그것은 pivot을 만들어서 다른색갈이 나올때마다 크기별 사이즈들을 저장해서 해결했다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; public class 컬러볼 { static int N; static class Ball implements Co..
백준 : 17090 미로 탈출하기 visit의 방문을 체크하면서 list에 담고 범위를 벗어낫을 경우 ans++ 더하면된다. 이때 다음 방문하는 곳에 탈출한적이잇다면 바로 탈출 할수있게 ret 배열을 초기화해준다. package 삼성; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.LinkedList; import java.util.Queue; import java.util.StringTokenizer; import 삼성.미로탈출하기.Pair; public class 미로탈출하기 { static int U[] = { -1, 0 }; stat..

반응형