블록 모양별 case를 나눠 brute force 14500번: 테트로미노 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변 www.acmicpc.net 풀이 범위 실수만 안하면 무난하게 풀 수 있는 문제이다. 반복되는 부분을 줄이고 싶어서 아래처럼 공통되는 부분을 찾고 method화 하였다. 그리고 블록이 범위를 벗어나는 부분을 간편하게 처리하기 위해 이차원 배열 크기를 처음부터 넉넉히 설정하였다. 계속 틀렸습니다가 뜬다면 아래의 반례를 참고하도록 하자. 글 읽기 - 왜87%에서 틀렸습니다가뜰까요 ㅠ 도와줘요 코딩짱짱맨~~ 댓글을 작성하려면 로그인해야 합니다. w..
case를 나눠 구현하면 된다. 출력 형식에 유의! 2290번: LCD Test 첫째 줄에 두 개의 정수 s와 n이 들어온다. (1 ≤ s ≤ 10, 0 ≤ n ≤ 9,999,999,999)이다. n은 LCD 모니터에 나타내야 할 수 이며, s는 크기이다. www.acmicpc.net 풀이 이 문제는 전처리가 필요하다. 우선 표시되는 숫자 모양의 공통점을 찾았다. 그리고 case를 일일이 나눠 매핑될 수 있도록 매핑배열을 미리 선언하고 시작했다. 위의 그림처럼 숫자 10개별로 해당되는 부분을 체크했다. 그리고 ①~⑦의 영역 범위를 아래의 표처럼 S값과 left변수로 나타내주었다. 그 이후 fill method를 선언하여 범위와 채워 넣어야 하는 String 문자열을 인자로 해서 코드가 간결하게 보여지도록..
전형적인 시뮬레이션 문제. 조건을 잘 보고 구현하는 것이 중요하다. 2933번: 미네랄 창영과 상근은 한 동굴을 놓고 소유권을 주장하고 있다. 두 사람은 막대기를 서로에게 던지는 방법을 이용해 누구의 소유인지를 결정하기로 했다. 싸움은 동굴에서 벌어진다. 동굴에는 미네랄 www.acmicpc.net 풀이 처음에 문제 이해하는데도 시간이 걸렸다.. 막대기를 던진다고 해서 포물선으로 날아가는 모습을 떠올렸으나 그렇진 않고 해당 높이에 레이저 포인터를 쏜다고 생각하면 된다. 막대기 높이와 실제 2차원 배열상의 인덱스는 반대이므로 먼저 계산해서 처리해주면 된다. 클러스터를 어떻게 내릴 것인지 고민을 좀 했다.. 우선 클러스터가 되는 모든 미네랄 좌표를 ArrayList (mineral)에 넣어 저장하고 Comp..
톱니바퀴문제에서 톱니 개수를 늘리고 정답 구하는 부분만 바꿔주면 되는 문제 15662번: 톱니바퀴 (2) 총 8개의 톱니를 가지고 있는 톱니바퀴 T개가 아래 그림과 같이 일렬로 놓여져 있다. 또, 톱니는 N극 또는 S극 중 하나를 나타내고 있다. 톱니바퀴에는 번호가 매겨져 있는데, 가장 왼쪽 톱니바퀴 www.acmicpc.net 풀이 예전에 썼던 톱니바퀴에서 톱니 개수를 늘리고 정답 구하는 부분만 바꿔주면 되므로 포스트 링크와 코드만 첨부한다. [백준] 14891. 톱니바퀴 (Java) 시뮬레이션에 간단한 BFS가 추가된 문제 14891번: 톱니바퀴 총 8개의 톱니를 가지고 있는 톱니바퀴 4개가 아래 그림과 같이 일렬로 놓여져 있다. 또, 톱니는 N극 또는 S극 중 하나를 나타내고 있다. melthlee..
시뮬레이션에 간단한 BFS가 추가된 문제 14891번: 톱니바퀴 총 8개의 톱니를 가지고 있는 톱니바퀴 4개가 아래 그림과 같이 일렬로 놓여져 있다. 또, 톱니는 N극 또는 S극 중 하나를 나타내고 있다. 톱니바퀴에는 번호가 매겨져 있는데, 가장 왼쪽 톱니바퀴 www.acmicpc.net 풀이 톱니바퀴를 돌릴 때 인덱스 값만 조정해서 실제 톱니바퀴는 돌리지 않는다. 인덱스 값이 변하는 규칙은 톱니바퀴 방향에 -1을 곱한 값을 더해주는 것이다. queue를 사용해서 현재 톱니바퀴 기준 양옆을 조사하면서 뻗어나간다. 톱니바퀴는 이동할 톱니바퀴를 모두 저장 후 마지막에 동시에 돌려야 하므로 별도의 큐로 관리했다. 마지막에 12시 위치의 인덱스 값을 계산해서 답을 구한다. int[][] cog: 톱니바퀴 정보 ..
deque (double-ended queue)를 사용하면 손쉽게 구현 가능한 문제 3190번: 뱀 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임 www.acmicpc.net 풀이 우선 문제를 꼼꼼히 잘 읽어야 한다! X초와 방향전환 정보가 주어지는데 게임 시작 시간으로부터 X초가 끝난 뒤 방향 전환을 한다. 이동시 snake의 tail을 head로 한 칸씩 옮겨가면 된다. 앞, 뒤 insert가 용이한 deque를 사용했다. Java에서의 deque method는 snake에 대조해보면 다음과 같다. 소스코드를 실제로 돌려보니 deque 상에선 snake ..
DFS 백트래킹 문제에 cctv를 설치하는 부분만 신경써주면 쉬운 문제 15683번: 감시 스타트링크의 사무실은 1×1크기의 정사각형으로 나누어져 있는 N×M 크기의 직사각형으로 나타낼 수 있다. 사무실에는 총 K개의 CCTV가 설치되어져 있는데, CCTV는 5가지 종류가 있다. 각 CCTV가 감 www.acmicpc.net 풀이 CCTV의 5가지 종류에 대해 조합으로 방향 정보를 구성하고 DFS를 짜주면 끝나는 간단한 문제이다. 방향 정보를 어떻게 나타낼지 고민을 많이 했다.. 우선 처음에 사무실 정보를 입력받을 때 카메라 번호 및 위치, 그리고 해당 카메라의 방향 정보 개수 (d)를 ArrayList에 넣는다. 방향 정보 개수는 아래 그림과 같다. 방문체크는 visited 2차원 배열을 만들어 해당 ..
아기상어 크기 설정시 주의! (무한루프에 빠질 수 있음)16236번: 아기 상어N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다. 아기 상어와 물고기는 모두 크기를 가www.acmicpc.net풀이문제 자체는 어렵지 않으나 반례를 잘 생각해야 한다. (문제 푼 시간보다 디버깅 시간이 더 오래걸렸다..) 테스트 케이스는 다 맞는데 2%에서 틀리길래 뭔가 했더니 아기상어 크기가 9보다 커질 수 있다는 사실을 생각 못하고 있었다.. 그리고 사소한 실수지만 만약 y, x가 아니라 x, y로 받았을 경우 위쪽은 y가 아니라 x이다. BABY_SHARK: 현재 아기상어 위치값. N 범위는 최대 20이므로 5..
- Total
- Today
- Yesterday
- dp
- 벨만포드
- dfs
- 다익스트라
- 알고리즘
- 구현
- form
- 시뮬레이션
- 해시
- CustomHook
- regex
- BigInteger
- 삼성역테기출
- web
- 백준
- Validation
- java
- 문자열
- REACT
- 그래프
- swea
- 브루트포스
- 백트래킹
- 정규식
- 프로그래머스
- matches
- 이분탐색
- 우선순위큐
- vue.js
- BFS
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |