문제보러가기 Longest Substring Without Repeating Characters - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 우선 이문제는 중복되지 않는 부분 문자열의 가장 긴 길이를 찾는 문제였다. 투 포인터를 사용해서 해결하였다. 문제풀이 -빈 문자열이나 한 글자인 문자열은 미리 체크를 하여 빼준다. -첫 글자를 부분 문자를 확인하는 str변수에 넣어준 후 반복문을 통해 탐색해준다. -end가 주어진 문자열인 s길이를 벗어날 경우 종료...
문제보러가기 16946번: 벽 부수고 이동하기 4 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 한 칸에서 다른 칸으로 이동하려면, 두 칸이 인접해야 한다. 두 칸이 � www.acmicpc.net 이문제는 보자마자 음? BFS 써야지 했다가 바로 시간 초과가 나버린 문제다. BFS의 비용을 최소화하기 위해 그룹핑하는 과정부터 필요하다. 이걸 분리 집합이라고 부른다. 문제풀이 -그룹화가 된 배열 정보를 담을 수 있게 group [][] 배열에 0 끼리 묶음 정보를 저장한다. -여기서 포인트는 BFS를 통해 그룹을 만들 때 이미 만들어진 그룹에 속한 인덱스는 탐색하지 않고 넘기는 것 -벽이 아닌 즉 0인 인덱스는 한 그룹에..
문제보러가기 1753번: 최단경로 첫째 줄에 정점의 개수 V와 간선의 개수 E가 주어진다. (1≤V≤20,000, 1≤E≤300,000) 모든 정점에는 1부터 V까지 번호가 매겨져 있다고 가정한다. 둘째 줄에는 시작 정점의 번호 K(1≤K≤V)가 주어진다. www.acmicpc.net 이문제는 다익스트라의 기본이 되는 문제였다. 알고리즘을 알고는 있었지만 문제를 풀어본 적이 없는 것 같아 기초 문제부터 시작! 문제풀이 -각 노드의 간선 정보를 저장할 list와 출발 노드부터 해당 노드까지의 최소거리를 갱신해주는 배열 dist []를 선언한다. -list의 경우 노드 숫자만큼의 배열과 각 노드의 연결된 노드와 가중치의 정보를 저장할 수 있도록 List list []로 선언해 준다. * Point 2는 노드..
문제를 제출했을 때 런타임 에러가 나면 정확히 무슨 이유인지 명시해주지 않기 때문에 알아서 고쳐야 한다. -> 이제는 런타임 에러의 종류를 명시해준다! 여러 가지 이유 1. 배열 인덱스 범위를 벗어났을 경우 ->주어진 테스트 케이스와 달리 채점 케이스는 큰 인덱스를 포함한다. 충분한 배열 크기를 잡아줬는지를 확인해야 한다. -> 내가 1부터 시작하진 않았는지 어디서 조건을 잘못 걸었다던지를 봐야 한다. 2. 0으로 나눌 때 3. 사용하는 라이브러리에서 예외를 발생시켰을 때 4. 재귀 호출이 너무 깊어질 때 => 런타임 에러라는 것은 uncheckedException을 비롯한 문제일 경우가 있으므로 살펴보는 것이 좋다 +추가로 설마 없겠지만 가끔 있는 IDE에서 사용했던 package를 지우지 않는 경우...
문제보러가기 코딩테스트 연습 - 기둥과 보 설치 5 [[1,0,0,1],[1,1,1,1],[2,1,0,1],[2,2,1,1],[5,0,0,1],[5,1,0,1],[4,2,1,1],[3,2,1,1]] [[1,0,0],[1,1,1],[2,1,0],[2,2,1],[3,2,1],[4,2,1],[5,0,0],[5,1,0]] 5 [[0,0,0,1],[2,0,0,1],[4,0,0,1],[0,1,1,1],[1,1,1,1],[2,1,1,1],[3,1,1,1],[2,0,0,0],[1,1,1,0],[2,2,0,1]] [[ programmers.co.kr 이 문제는 주어진 룰에 맞게 구현을 할 수 있는가를 보는 문제였다. 단순 구현이라기에는 설치할 때와 삭제할 때 가능한지를 체크해야 하므로 좀 까다로웠다. 나의 경우에는 삭제..
문제보러가기 16928번: 뱀과 사다리 게임 첫째 줄에 게임판에 있는 사다리의 수 N(1 ≤ N ≤ 15)과 뱀의 수 M(1 ≤ M ≤ 15)이 주어진다. 둘째 줄부터 N개의 줄에는 사다리의 정보를 의미하는 x, y (x < y)가 주어진다. x번 칸에 도착하면, y번 칸으 www.acmicpc.net 이문제는 탐색 문제로 bfs를 이용해 풀었다. 100까지 갈 때 최소한의 주사위를 던져서 가는 것이므로 bfs라고 분류한 것을 보지 않아도 bfs임을 유추할 수 있다. 일반 bfs와 다르게 동서남북 방향이 아닌 1~6까지의 숫자로 이동하는 부분만 잘 처리해주면 문제없이 풀 수 있다. +참고로 메모리 초과가 뜬다면 visited [][]로 체크해주는 부분이 빠졌는지 확인해보자..!! 사실 내가 메모리 초과가..
문제보러가기 16939번: 2×2×2 큐브 첫째 줄에 2×2×2 루빅스 큐브 각 면의 각 칸 색상이 주어진다. 색상은 1부터 6까지의 자연수로 나타내며, 각 자연수는 총 4번 등장한다. i번째 수가 의미하는 칸은 아래와 같다. www.acmicpc.net 이문제는 2차원 배열을 만들어 문제에서 제시한 대로 큐브 한 면에 해당하는 인덱스들을 90도씩 회전시킬 수 있느냐를 묻는 문제였다. 참.. 어려웠다.. 거의 막일로 푼 문제긴 한데.. 비슷한 코드는 묶어서 쓰기도 했다. 문제풀이 -문제에서 주어진 전개도 그대로 2차원 배열을 만들어 저장한다. -문제에서는 큐브를 단 한 번만 회전할 경우만을 요구하고 있으므로 -회전은 총 12가지 경우가 있다 큐브의 앞면 큐브의 뒷면 큐브의 윗면 큐브의 아랫면 큐브의 왼쪽..
문제보러가기 코딩테스트 연습 - 자물쇠와 열쇠 [[0, 0, 0], [1, 0, 0], [0, 1, 1]] [[1, 1, 1], [1, 1, 0], [1, 0, 1]] true programmers.co.kr 이문제는... 어려웠다. 문제 자체는 이해하기에 어렵지 않았지만 단순 시물레이션이라기엔 배열에 대한 인덱스 지식과 더불어 깊은 복사 얕은 복사에 대한 지식을 갖고 있어야 가능한 문제였다고 생각한다. 이문제를 풀면서,, 2차원 배열에 대해 다시 한번 생각하게 되었다. 패딩 시킨다면 얼마큼...? 어디까지 가야 하지..? 인덱스 몇까지..? 뭐 이런 고민들을 하면서 많이 접해보고 다양한 시각으로 여러 문제들을 풀어봐야겠다고 생각했다!! 문제풀이 -문제의 핵심은 key, lock을 패딩 시키는 것이다. ..
- Total
- Today
- Yesterday
- 삼성 sw역량테스트
- Oracle
- 최소 스패닝 트리
- DP
- Spring
- SWEA
- 삼성 sw역량 테스트
- websocket
- 채팅
- MST
- 정렬
- Heap
- 완전탐색
- java
- OS
- programers
- Baekjoon
- 알고리즘
- BFS
- 백준
- Stomp
- 자바
- dfs
- 운영체제
- 프로그래머스
- JavaScript
- 분리 집합
- 코딩테스트
- sockjs
- git
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |