일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- CS
- 폰켓몬
- flyway
- 외래키제약조건위반
- 구현
- 코테
- 프로젝트
- 프로그래머스
- 트리셋
- JPA
- CPU스케줄링
- DB replication
- 2178
- 백준
- 트리맵
- 산업은행it
- 운영체제
- 파이널프로젝트
- findById
- Spring JPA
- 해시
- 그래프탐색
- 스케일아웃
- SpringBatch
- BFS
- 임베디드타입
- 컴퓨터구조
- fatch
- springboot
- 산업은행청년인턴
- Today
- Total
목록코딩테스트/그래프 탐색 (9)
나 JAVA 봐라
카테고리는 DFS로 분류 되긴 했지만, DFS/BFS 둘다 가능할 것 같아서 두 방식으로 모두 풀어봤다. https://www.codetree.ai/trails/complete/curated-cards/challenge-seperate-village/description?page=1&page_size=20 Code Tree | Learning to Code with ConfidenceA super-comprehensive, meticulously arranged Coding Learning Curriculum engineered by Algorithm Experts composed of former International Olympiad in Informatics (IOI) medalists.www.c..
https://school.programmers.co.kr/learn/courses/30/lessons/43164 언제인지 모를, 기존에 짜둔 코드. -> 테케 1번 통과 못함. import java.util.*;class Solution { public static boolean visit[]; public static ArrayList list; public static ArrayList result; public String[] solution(String[][] tickets) { // 일단 ICN부터 시작하기 -> ICN 2개 이상이면 각자 탐색 ㄱㄱ // 더 이상 방문할 수 있는 도시가 없다면 끝 // ticket..
https://school.programmers.co.kr/learn/courses/30/lessons/86971 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 처음 접근한 방법) 전력망 네트워크가 하나의 트리 형태가 아닌 경우는 입력으로 주어지지 않고, wires가 정렬되어서 입력되기 때문에, 끊어낼 전선을 제외한 wires의 가장 처음 원소의 송전탑 번호를 해시셋에 담고, 반복문을 통해 wires를 탐색하며 해시셋에 값이 있는 경우에만 해시에 계속 add 한다면, 결국에는 트리가 이어진 송전탑만 해시에 담길 것이라고 생각했다. 근데 제시된 테케는 다 통과..
https://school.programmers.co.kr/learn/courses/30/lessons/87946?language=java 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 제한 사항을 보니, 정렬을 하면 풀 수 있을 것 같았지만, 방법이 생각나지 않고, 입력 데이터 사이즈가 크지 않아서 완전 탐색으로 구현했다. 대략적인 구현 순서는 아래와 같다. 1. 탐색할 수 있는 순열을 모두 구하여 list에 담는다. (dungeons.length 만큼)ex) dungeons.length = 3 이라면, 순열은 총 6개가 나온다. (0,1,2) (0,2,..
https://www.acmicpc.net/problem/15686 15686번: 치킨 배달크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸www.acmicpc.net해당 문제에선 너무 많은 배열 변수들과 for문을 덮어써서 시간 초과날 줄 알았지만, 특별히 문제가 없었다. 내가 생각한 풀이 방법이다. 맵 정보를 입력받을 때, 집과 치킨집의 좌표 정보를 담은 배열을 저장한다.집( value = 1) : home.add치킨집(value = 2) : chicken.add모든 집-치킨집 사이의 거리를 구한다.2차원 배열 dist를 생성해서 dist[..

https://www.acmicpc.net/problem/14940 14940번: 쉬운 최단거리지도의 크기 n과 m이 주어진다. n은 세로의 크기, m은 가로의 크기다.(2 ≤ n ≤ 1000, 2 ≤ m ≤ 1000) 다음 n개의 줄에 m개의 숫자가 주어진다. 0은 갈 수 없는 땅이고 1은 갈 수 있는 땅, 2는 목표지점이www.acmicpc.netBFS를 사용하여 주변을 탐색하며 count+1 씩 해주면 될 것 같다. 맵 초기화 진행초기화 하면서 값이 2인 경우에는 시작점이므로 start 배열에 넣기bfs에 start를 시작점으로 두기큐 생성 하여 q.add(start)큐에 넣었으니 방문 체크하기시작점에 해당하는 맵은 0으로 값 바꾸기 (2 -> 0)q가 빌 때까지 탐색하기상,하,좌,우 탐색하며 유효..

https://www.acmicpc.net/problem/17086 17086번: 아기 상어 2첫째 줄에 공간의 크기 N과 M(2 ≤ N, M ≤ 50)이 주어진다. 둘째 줄부터 N개의 줄에 공간의 상태가 주어지며, 0은 빈 칸, 1은 아기 상어가 있는 칸이다. 빈 칸과 상어의 수가 각각 한 개 이상인 입력만www.acmicpc.net저번 18405번 경쟁적 전염 문제와 비슷하게, 시작점이 여러 곳이다. 시작점이 여러 곳이면 큐를 여러개 만들어야 하나? 라고 전에 고민했던 것 같은데, 문제 조건에 따라 객체를 만들면 되는 문제인 것 같다.객체의 필드값으로 좌표값 (x,y)과 문제에 맞는 필드값 (ex. 해당 문제에서는 length)를 넣어주면 되는 것 같다. 이번 문제도 마찬가지로 BFS를 사용하고, S..
https://www.acmicpc.net/problem/18405 18405번: 경쟁적 전염첫째 줄에 자연수 N, K가 공백을 기준으로 구분되어 주어진다. (1 ≤ N ≤ 200, 1 ≤ K ≤ 1,000) 둘째 줄부터 N개의 줄에 걸쳐서 시험관의 정보가 주어진다. 각 행은 N개의 원소로 구성되며, 해당 위치www.acmicpc.net문제에서 바이러스는 시간에 따라 번식하게 되는데, 바이러스의 번식은 한 번에 모든 바이러스가 동시에 일어나는 것이 아니라 순차적으로 진행된다. 따라서 이러한 상황을 시뮬레이션하기 위해 큐를 사용한다. 큐를 사용하는 이유:순차적 처리: 바이러스가 번식하는 것은 순차적으로 진행된다. 큐를 사용하면 선입선출(FIFO)의 특성을 이용하여 먼저 들어온 바이러스부터 순서대로 번식시킬..
https://www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net 접근 방식 미로를 최소의 칸을 지나서 이동해야한다. -> 경로를 탐색하기 위해 dfs/bfs를 사용해야하는데 조건 중 '최소'가 있다. dfs를 사용할 경우 모든 경로를 다 탐색하기 때문에 시간 초과가 날 수 있을 것이라 생각하고 bfs를 사용하기로 했다. bfs 이기 때문에 queue를 사용했다. 미로의 상하좌우를 탐색하기 위한 x,y 배열을 생성한 후, 각 배열을 반복하여 더해줬을 때 다음 위치가 유효한지 확인하여 탐색할 수..