코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문 programmers.co.kr 풀이 카카오 2020 블라인드 1차코테에 나왔던 문제이다. 그당시 예외처리하고 하느라 은근 오래걸렸던 것 같은데 그동안 짬바(?)가 쌓였는지 저번보단 적게, 수월하게 풀었다 특정한 규칙이 보이지 않아 모든 케이스를 다 구해야 하구나.. 생각했다. 문자열을 자를 수 있는 개수를 전부 돌려보면서 비교했다. StringBuillder로 하나씩 붙여나갔다. 자른 문자열 이전 값과 다음 값을 비교해주며 cnt가 2 이상이면 숫자까지 붙여주면 된다. substrin..
1107번: 리모컨 첫째 줄에 수빈이가 이동하려고 하는 채널 N (0 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 고장난 버튼의 개수 M (0 ≤ M ≤ 10)이 주어진다. 고장난 버튼이 있는 경우에는 셋째 줄에는 고장난 버튼 www.acmicpc.net 풀이 반례가 엄청 많이 존재하니 혹시라도 틀렸다면 질문게시판의 반례모음집 게시글을 참조하며 고쳐나가면 좋다. 어떻게 풀지 생각하다 BFS N부터 시작해서 100까지 가는 방법을 찾았다. 문제 분류는 브루트포스로 되어있는데 말 그대로 브루트포스로 0부터 1000000까지 모든 경우를 계산하는 방법도 있다. N에서 출발하는데 현재 숫자가 누를 수 있는 번호이면 (isPossibleToPress(int n)으로 각 자릿수에 누를 수 없는 수가 있는지 ..
15684번: 사다리 조작 사다리 게임은 N개의 세로선과 M개의 가로선으로 이루어져 있다. 인접한 세로선 사이에는 가로선을 놓을 수 있는데, 각각의 세로선마다 가로선을 놓을 수 있는 위치의 개수는 H이고, 모든 세로선 www.acmicpc.net 풀이 사다리를 코드로 어떻게 표현해야 할지 고민을 엄청 한 문제!! method를 기능별로 만들어서 풀었더니 군더더기 없이 한번에 통과! 이차원 배열을 만들고 한 column을 한 세로선이라고 두었다. 그리고 가로선은 인덱스 값을 줘서 표시했다. 이렇게 한 이유는 만약 1로만 표시하면 내려갈 때 양 옆에 가로선이 존재하면 이게 옆동네 가로선인지 내 가로선인지 알 길이 없다. 따라서 내 가로선인지 바로 구분하기 위해 인덱스를 두었다. 가로선은 3개가 넘어가면 -1..
16198번: 에너지 모으기 N개의 에너지 구슬이 일렬로 놓여져 있고, 에너지 구슬을 이용해서 에너지를 모으려고 한다. i번째 에너지 구슬의 무게는 Wi이고, 에너지를 모으는 방법은 다음과 같으며, 반복해서 사용할 수 있 www.acmicpc.net 풀이 배열로 수를 저장하고 선택한 수에 대해선 visited = false로 처리하여 백트래킹으로 진행한다. 시행착오 처음에 백트래킹 수행하는 method의 인자를 고른 수로 했다. 이렇게 되면 left, right가 linear하게 선택되서 답이 제대로 안나왔다. for문 안에 넣어야 하는데 어떻게 바꿀지 모르겠어서 결국 솔루션을 참고했다. method의 인자는 n과 m 문제처럼 depth를 인자로 넣고, depth가 N-2가 되었을 때 max값인지 아닌지..
3019번: 테트리스 테트리스는 C열 필드위에서 플레이하는 유명한 게임이다. 필드의 행의 수는 무한하다. 한 번 움직일 때, 아래와 같은 일곱가지 블록 중 하나를 필드에 떨어뜨릴 수 있다. 블록을 떨어뜨리기 전에 www.acmicpc.net 풀이 문제 그대로 정직하게 구현하면 되는 문제! 블록 모양을 어떻게 판단할지가 가장 큰 고민이었다. 배열? 리스트? 그림 그려서 수동으로 해보니 바닥면 높낮이를 체크하면 됨을 알 수 있었다. 각 테트리스 블록별로 회전했을때 나올 수 있는 가능한 모양을 모두 저장할 수 있는 ArrayList 을 만들고, 처음 입력받은 모양 번호로 초기화되게 했다. (getBlockShape()) 블록 모양에 따라 올라와야 하는 바닥면의 높이를 저장했다. 그리고 바닥면에 대해 블록을 끝..
블록 모양별 case를 나눠 brute force 14500번: 테트로미노 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변 www.acmicpc.net 풀이 범위 실수만 안하면 무난하게 풀 수 있는 문제이다. 반복되는 부분을 줄이고 싶어서 아래처럼 공통되는 부분을 찾고 method화 하였다. 그리고 블록이 범위를 벗어나는 부분을 간편하게 처리하기 위해 이차원 배열 크기를 처음부터 넉넉히 설정하였다. 계속 틀렸습니다가 뜬다면 아래의 반례를 참고하도록 하자. 글 읽기 - 왜87%에서 틀렸습니다가뜰까요 ㅠ 도와줘요 코딩짱짱맨~~ 댓글을 작성하려면 로그인해야 합니다. w..
- Total
- Today
- Yesterday
- 백트래킹
- BFS
- matches
- 프로그래머스
- swea
- 벨만포드
- 해시
- CustomHook
- 문자열
- REACT
- Validation
- 삼성역테기출
- 이분탐색
- 우선순위큐
- 다익스트라
- web
- 시뮬레이션
- 그래프
- 브루트포스
- 알고리즘
- 백준
- 구현
- form
- BigInteger
- dp
- regex
- java
- dfs
- 정규식
- vue.js
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
29 | 30 | 31 |