문제보러가기 코딩테스트 연습 - 숫자 야구 [[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 ..
문제 보러가기 14889번: 스타트와 링크 예제 2의 경우에 (1, 3, 6), (2, 4, 5)로 팀을 나누면 되고, 예제 3의 경우에는 (1, 2, 4, 5), (3, 6, 7, 8)로 팀을 나누면 된다. www.acmicpc.net 이문제는 삼성 sw역량 테스트 기출문제이다. 그냥 모든 경우를 탐색하여 가장 적은 차이를 구하면 되는 간단한 문제였던 것 같다. 더 효율적이게 하는 방법도 있을 수 있지만 다 탐색해도 시간초가 괜찮은거 같다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.StringToke..
문제 보러 가기 16234번: 인구 이동 N×N크기의 땅이 있고, 땅은 1×1개의 칸으로 나누어져 있다. 각각의 땅에는 나라가 하나씩 존재하며, r행 c열에 있는 나라에는 A[r][c]명이 살고 있다. 인접한 나라 사이에는 국경선이 존재한다. 모�� www.acmicpc.net 음... 문제가 어려웠던 건 아니겠지... 나는 어려웠다. 우선 이문제는 dfs도 bfs도 가능하다! 다른 분들의 풀이를 보니 어떤 분은 dfs와 bfs를 함께 사용하기도 했다. 나는 bfs를 사용했다 고려사항 -인구이동의 조건 : 각 인접한 나라가 L = n) { continue; } int diff = Math.abs(map[tmp.x][tmp.y] - map[sx][sy]); if ((diff r) ..
문제보러가기 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 이문제는 시뮬레이션 문제라고한다. 나는 DFS로 풀었다! 물론 간단하게 푼건 아니고 안되는 테스트 케이스가 있어서 애를 먹었으며, 처음에는 DFS를 쓰면 되겠다 뿐 어떻게 구현하지 생각이 나지않아 다른분들이 푼 순서들을 보며 풀었다. 고려사항 코어를 최대로 연결하는게 목표이지만 같을경우 길이가 짧은걸 반환해야한다.여기서 각각의 코어마다 DFS를 진행할때 코어숫자와 최소 길이를 넘겨줘야한다는걸 알아야한다! 시간초과가 났던부분은 코어가 벽에 붙어있을경우 무조건 연결시키면 되므로 core 개수를 +1해버리고 넘어가면 해결이 되는 부분이었다! 마지막 테스트케..
- Total
- Today
- Yesterday
- 최소 스패닝 트리
- 코딩테스트
- OS
- Spring
- 완전탐색
- 정렬
- java
- SWEA
- Stomp
- MST
- Baekjoon
- dfs
- DP
- 삼성 sw역량 테스트
- 자바
- programers
- Heap
- 백준
- websocket
- 채팅
- Oracle
- JavaScript
- 프로그래머스
- sockjs
- git
- 삼성 sw역량테스트
- 알고리즘
- 운영체제
- 분리 집합
- 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 |