문제보러가기 코딩테스트 연습 - 전화번호 목록 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조�� programmers.co.kr 이문제는 해시문제이다. 해시 카테고리에 있어서 해시맵...? 해시테이블..? 써야하나,,,? 라고 생각하면서 해시 알고리즘에 대한 기본지식이 많이 부족하구나라고 깨달았다. 시간을 내서 한번 정리해봐야할것 같다. 문제풀이 -길이가 작은 숫자가 길이가 긴 숫자의 접두어가 될 수 있기 때문에 길이순, 후 숫자으로 정렬. -숫자의 포함여부를 contains()를 통해 확인. -포함시 answer을 false로 바꾸고 return ※접두어만 확인하는것..
문제보러가기 코딩테스트 연습 - 숫자 야구 [[123, 1, 1], [356, 1, 0], [327, 2, 0], [489, 0, 1]] 2 programmers.co.kr 이문제는 완전 탐색 카테고리에 있는 문제로 모든 경우의 수를 다 탐색해서 해를 구하는 방식으로 접근해야 했다. 문제는 어떤 식으로 모든 경우의 수를 구해야 하는가.. 였다. 그래서 좀 찾아보니 모든 해당하는 모든 숫자에 대해 다 탐색해보는 방식으로 풀면 됐다. 문제풀이 -중복되는 숫자가 없는 3 자릿수를 list에 넣어 탐색한다(123~987 0 은 제외) -주어진 baseball배열에서 숫자와 스트라이크, 볼의 수를 탐색 -strikeCnt -> list의 탐색할 숫자와 baseball배열의 숫자 : 숫자와 인덱스가 같을경우 => ..
문제보러가기 코딩테스트 연습 - 여행경로 [[ICN, SFO], [ICN, ATL], [SFO, ATL], [ATL, ICN], [ATL,SFO]] [ICN, ATL, ICN, SFO, ATL, SFO] programmers.co.kr 이문제는 경로가 여러개 나올수 있다는 점과 그럴 경우 알파벳 순서가 앞서는 경로를 답으로 택하는것만 주의하면 되는 문제였다. 나는 경로가 여러개 나올때 계속 같은경로가 여러번 저장되길래 삽질을 좀 했다..;; array의 주소값으로 참조함을 잊지말자 ㅎ.. copy사용을 생각하자...ㅎ 문제풀이 -"ICN"으로 시작하는걸 start -ticket[i][1]이 다음 start가 된다. -모든경우를 탐색한 후 list에 저장된 경로 중 알파벳순으로 sorting import ..
문제보러가기 코딩테스트 연습 - 단어 변환 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 programmers.co.kr 이문제의 포인트는 주어진 단어의 한글자만 바꾼 단어가 주어진 단어의 집합에 있는지 확인하면서 진행해 나가는 과정이었다! 처음에는 단어를 바꾸니까 subString()을 쓰면 되겠다! 했는데 더 복잡해졌다는,,,, 문제풀이 -주어진 단어집합에 내가 비교하는 단어에서 한글자만 다른단어가 있는지 탐색 -visited == false라면 dfs에 그 단어로 다시 dfs진행 -target과 같아질때까지 비교 나는 한..
문제보러가기 코딩테스트 연습 - 네트워크 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있�� programmers.co.kr 이문제는 전형적인 dfs라고 생각하고 풀었다. 딱 보자마자 탐색부터 해야지..라고 생각했는데 이게 그래프 노드의 숫자만 기억하면 되서 이차배열로 생각하다 복잡해졌었다. 쉬운문제이지만 기본기가 있어야 하는 문제라고 생각한다! 풀이방법 dfs로 탐색을 하면서 visited배열로 방문여부를 체크한다. 방문하지 않을경우 연결되지 않은 네트워크 이므로 따로 탐색을 한다. package programers; public class Network { s..
문제보러가기 코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+ programmers.co.kr 이문제는 DFS/BFS 카테고리에 있는 level2문제로 간단한 편이라고 할 수 있다. 요새 계속 알고리즘을 풀어도 실력이 느는것 같지 않길래 우선 카테고리부터 정복하자! 해서 시작했다. 풀이 방법도 딱히 없이 dfs로 -일때와 +일때를 나눠서 해결해주면 되는 문제였다. package programers; public class TargetNum { static int answer; public ..
문제보러가기 코딩테스트 연습 - [3차] 압축 TOBEORNOTTOBEORTOBEORNOT [20, 15, 2, 5, 15, 18, 14, 15, 20, 27, 29, 31, 36, 30, 32, 34] programmers.co.kr 움.. 다른방법을 생각해보려고 했으나 생각이 안나서 그냥 풀었는데 맞았던 문제! java의 HashMap을알고 있다면 접근이 수월했을듯한 문제이다. 접근방법 1."A"-"Z"까지를 미리 HashMap에 넣는다-key를 String으로 사용,사전의 역할 2.주어진 String을 탐색하면서 사전에 있을경우 다음 인덱스 글자를 포함해서 go 3.사전에 없다면 이전 인덱스까지의 String에 해당하는 value를 사전에서 찾아 answer에 기록 접근방법은 간단하지만 index,..
- Total
- Today
- Yesterday
- programers
- 운영체제
- java
- 채팅
- SWEA
- 삼성 sw역량 테스트
- Heap
- git
- DP
- sockjs
- 코딩테스트
- 프로그래머스
- 완전탐색
- 자바
- Oracle
- websocket
- 삼성 sw역량테스트
- OS
- Stomp
- 정렬
- MST
- 최소 스패닝 트리
- 알고리즘
- Baekjoon
- 백준
- Spring
- dfs
- JavaScript
- 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 | 29 | 30 | 31 |