문제풀이
-
[프로그래머스]SELECT - 모든 레코드 조회하기문제풀이/SQL 2021. 2. 25. 21:44
[프로그래머스]모든 레코드 조회하기 programmers.co.kr/learn/courses/30/lessons/59034 코딩테스트 연습 - 모든 레코드 조회하기 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr 풀이 ANIMAL_INS 테이블에 있는 모든 동물의 정보를 출력하면 된다. 코드 1 SELECT * FROM ANIMAL_INS ORDER BY ANIMAL_ID cs
-
[백준]1167: 트리의 지름 - JAVA문제풀이/백준 2021. 2. 25. 16:58
[백준]1167: 트리의 지름 www.acmicpc.net/problem/1167 1167번: 트리의 지름 트리가 입력으로 주어진다. 먼저 첫 번째 줄에서는 트리의 정점의 개수 V가 주어지고 (2≤V≤100,000)둘째 줄부터 V개의 줄에 걸쳐 간선의 정보가 다음과 같이 주어진다. (정점 번호는 1부터 V까지 www.acmicpc.net 풀이 🪑 트리에서 가장 먼 정점 사이의 거리를 구하는 문제이다. 정점의 위치 보다는 정점과 정점 사이의 cost값이 중요하다. 다익스트라를 사용해서 정점을 순환하며 각 정점에서 최장거리를 구하고 그 거리중의 최대값을 구해도 답은 나오겠지만 이 문제는 그렇게 풀면 시간초과가 발생한다. 다른 방법을 생각해야 한다. 예제 입력을 보면서 생각을 해보쟝. 예제 입력을 트리로 변환..
-
[프로그래머스]게임 맵 최단거리 - JAVA문제풀이/프로그래머스 2021. 2. 25. 14:59
[프로그래머스]게임 맵 최단거리 programmers.co.kr/learn/courses/30/lessons/1844 코딩테스트 연습 - 게임 맵 최단거리 [[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,1],[0,0,0,0,1]] 11 [[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,0],[0,0,0,0,1]] -1 programmers.co.kr 풀이 프로그래머스 레벨4 문제 임에도 불구하고 BFS를 사용하면 금방 풀리는 문제이다. BFS를 사용하는 이유는 최단경로를 탐색하기 때문이다. 현재까지의 cost를 저장해 주기 위해 Node class를 만들어 주었다. BFS의 반환 타입을 int형으로 해주어 x, y가 도착 노드에 도착했다..
-
[백준]13549: 숨바꼭질 3 - JAVA문제풀이/백준 2021. 2. 24. 16:48
[백준]13549: 숨바꼭질 3 www.acmicpc.net/problem/13549 13549번: 숨바꼭질 3 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 풀이 탐색 문제로 문제 조건에 따라 탐색 조건을 적절하게 작성해서 탐색한다. 최소비용을 찾는 문제이므로 BFS를 사용하였다. 진행되는 연산은 3종류로 +1, -1, *2이다. 이때 연산 순서도 중요하다. 예를들어 현재 노드의 값이 1이고 목적 노드의 값이 2일 경우에 +1보다 *2가 수행되는 경우가 최소비용이기 때문이다. 이 점만 유의하면 된다...
-
[프로그래머스]보석 쇼핑 - JAVA문제풀이/프로그래머스 2021. 2. 24. 14:04
[프로그래머스]보석 쇼핑 programmers.co.kr/learn/courses/30/lessons/67258 코딩테스트 연습 - 보석 쇼핑 ["DIA", "RUBY", "RUBY", "DIA", "DIA", "EMERALD", "SAPPHIRE", "DIA"] [3, 7] programmers.co.kr 풀이 set, map, queue를 사용하여 풀었다. 사용한 이유는 다음과 같다. 1. set은 보석의 종류의 개수를 알아내기 위해 사용하였고, 2. map은 보석의 종류별 개수를 기록하기 위해 사용하였고, 3. queue에는 보석의 순서대로 저장한 후 보석의 개수가 2개 이상이 되면 빼주도록 하여 문제에 조건에 맞는 보석의 구간을 구하기 위해 사용하였다. 하나씩 살펴보쟝. 1. set을 사용해 보석..
-
[백준]1987: 알파벳 - JAVA문제풀이/백준 2021. 2. 23. 17:50
[백준]1987: 알파벳 www.acmicpc.net/problem/1987 1987번: 알파벳 세로 R칸, 가로 C칸으로 된 표 모양의 보드가 있다. 보드의 각 칸에는 대문자 알파벳이 하나씩 적혀 있고, 좌측 상단 칸 (1행 1열) 에는 말이 놓여 있다. 말은 상하좌우로 인접한 네 칸 중의 한 칸으 www.acmicpc.net 풀이 백트랙킹 + DFS문제이다. 이전에 알파벳을 뽑았는지 확인하기 위해 알파벳의 개수만큼의 크기의 배열을 boolean타입으로 만들어주었다. 그리고 dfs탐색을 하면서 이전에 뽑은 알파벳이 아닌 경우에 탐색을 진행하도록 하였다. 알파벳을 처리하는 방법 즉, boolean배열로 방문 노드를 표시하듯이 알파벳을 처리해주는 아이디어만 생각해 낸다면 이후로는 기존의 dfs탐색 풀이와 ..
-
[프로그래머스]자물쇠와 열쇠 - JAVA문제풀이/프로그래머스 2021. 2. 23. 15:39
[프로그래머스]자물쇠와 열쇠 programmers.co.kr/learn/courses/30/lessons/60059 코딩테스트 연습 - 자물쇠와 열쇠 [[0, 0, 0], [1, 0, 0], [0, 1, 1]] [[1, 1, 1], [1, 1, 0], [1, 0, 1]] true programmers.co.kr 풀이 특별한 알고리즘을 사용하지않는 구현, 시뮬레이션 문제이다. 그러나 어떻게 풀어야 할지 아이디어를 생각해 내기 어려웠던 문제라고 생각이 든다. 문제를 푸는 핵심 아이디어는 아래 와 같다. 1. lock를 확장한다. 2. key를 회전한다. 3. key가 lock에 맞는지 확인힌다. 하나씩 차근차근 살펴보쟝. 1. lock를 확장한다. 확장하는 이유는 키의 일부가 자물쇠의 영역을 벗어나도 키로 ..
-
[백준]2573: 빙산 - JAVA문제풀이/백준 2021. 2. 22. 16:34
[백준]2573: 빙산 www.acmicpc.net/problem/2573 2573번: 빙산 첫 줄에는 이차원 배열의 행의 개수와 열의 개수를 나타내는 두 정수 N과 M이 한 개의 빈칸을 사이에 두고 주어진다. N과 M은 3 이상 300 이하이다. 그 다음 N개의 줄에는 각 줄마다 배열의 각 행을 www.acmicpc.net 풀이 탐색을 하면서 빙산의 개수를 세고, 탐색을 하면서 빙하를 녹이는 문제이다. 빙산의 개수가 2개 이상이되는 순간 탐색을 멈추고 그 때의 year값을 반환한다. 빙산의 개수가 0이되버리면 2개 이상이 될 수 없으므로 0을 반환한다. 빙하가 녹을때 주의해야 할 점이 있다. 아래와 같은 경우이다. 0 0 0 0 2 -> 0 5 0 0 0 이때 가운데 칸의 빙하가 녹고 나면 2에서 0으..