문제풀이
-
[백준 ]5014: 스타트링크 - JAVA문제풀이/백준 2021. 3. 3. 15:08
문제 www.acmicpc.net/problem/5014 5014번: 스타트링크 첫째 줄에 F, S, G, U, D가 주어진다. (1 ≤ S, G ≤ F ≤ 1000000, 0 ≤ U, D ≤ 1000000) 건물은 1층부터 시작하고, 가장 높은 층은 F층이다. www.acmicpc.net 풀이 S -> G로 가는 최단 경로를 찾는 문제이므로 BFS를 사용하여 풀었다. 이미 방문한 층을 다시 방문하면 최단 경로가 아니기 때문에 visited를 사용하여 다시 방문하는 일이 없도록 하였다. 또한 노드 class를 만들어 현재 층의 위치와 현재까지 몇번의 버튼을 눌렀는지 기억하도록 하였다. 이 문제에서 주의할 점이 있는데 예제 입력 1번을 잘 이해했다면 넘어가도 된다. 예를 들어, 예제 1번에서 1 -> 10..
-
[프로그래머스]베스트앨범 - JAVA문제풀이/프로그래머스 2021. 3. 3. 13:36
문제 programmers.co.kr/learn/courses/30/lessons/42579 코딩테스트 연습 - 베스트앨범 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 programmers.co.kr 풀이 HashMap을 사용하는 문제로 HashMap에 관련된 다양한 연산들을 연습해 볼 수 있는 구현, 시뮬레이션 문제였다. 문제는 다음과 같은 과정으로 풀어 나갔다. hashmap에 장르별 play횟수를 중첩해서 더해준다. hashmap의 key값만을 추출하여 리스트를 만들고, 리스트를 play횟수를 기준으로 정렬한다. (hashmap은 순서가 없기 때문에 정렬할 수..
-
[백준]1504: 특정한 최단 경로 - JAVA문제풀이/백준 2021. 3. 2. 17:39
[백준]1504: 특정한 최단 경로 www.acmicpc.net/problem/1504 1504번: 특정한 최단 경로 첫째 줄에 정점의 개수 N과 간선의 개수 E가 주어진다. (2 ≤ N ≤ 800, 0 ≤ E ≤ 200,000) 둘째 줄부터 E개의 줄에 걸쳐서 세 개의 정수 a, b, c가 주어지는데, a번 정점에서 b번 정점까지 양방향 길이 존 www.acmicpc.net 풀이 1에서 시작해서 V1과 V2를 포함하여 N까지 가는 최단 경로 값을 찾는 문제이다. 간단하게 생각하면된다. 다음과 같은 두 경로를 구한 후 둘 중에 더 작은 경로를 출력하면 된다. 최단거리(1 ~ V1) + 최단거리(V1 ~ V2) + 최단거리(V2 ~ N) 최단거리(1 ~ V2) + 최단거리(V2 ~ V1) + 최단거리(V1..
-
[백준]2589: 보물섬 - JAVA문제풀이/백준 2021. 3. 2. 15:34
[백준]2589: 보물섬 www.acmicpc.net/problem/2589 2589번: 보물섬 보물섬 지도를 발견한 후크 선장은 보물을 찾아나섰다. 보물섬 지도는 아래 그림과 같이 직사각형 모양이며 여러 칸으로 나뉘어져 있다. 각 칸은 육지(L)나 바다(W)로 표시되어 있다. 이 지도에서 www.acmicpc.net 풀이 최단거리 중에서의 최대값을 구하는 문제였다. BFS로 각 정점에서의 최단 거리를 구해주고 그 최단 거리 들 중의 최대값을 계산해 주었다. BFS에서 현재 위치와 현재 위치 까지의 거리를 저장해줄 Node class를 만들어서 저장해 주었다. 그리고 이중 for문으로 모든 노드를 확인하면서 '육지'인 경우에만 BFS탐색을 하도록 하였다. 코드 1 2 3 4 5 6 7 8 9 10 11 ..
-
[프로그래머스]STRING,DATE - DATETIME에서 DATE로 형 변환문제풀이/SQL 2021. 3. 2. 14:37
[프로그래머스]DATETIME에서 DATE로 형 변환 programmers.co.kr/learn/courses/30/lessons/59414 코딩테스트 연습 - DATETIME에서 DATE로 형 변환 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr 풀이 DATE_FORMAT함수를 사용하여 DATETIME을 원하는 형태로 형 변환 해주었다. 대,소문자가 의미하는 형태가 다르므로 유의해야 한다. %Y : 2021 %y : 21 %M : Ju..
-
[프로그래머스]STRING,DATE - 오랜 기간 보호한 동물(2)문제풀이/SQL 2021. 3. 2. 14:17
문제 programmers.co.kr/learn/courses/30/lessons/59411 코딩테스트 연습 - 오랜 기간 보호한 동물(2) ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr 풀이 입양 보낸 날짜에서 보호소에 들어온 날짜를 빼 주어서 보호 기간을 구했다. 이때 오랜 기간 보호한 동물 순서대로 출력해야 하기 때문에 DESC를 해주었다. 그 다음 보호 기간이 가장 길었던 2마리만 출력해야 하므로 LIMIT을 걸어주었다. 코드 ..
-
[프로그래머스]STRING,DATE - 중성화 여부 파악하기문제풀이/SQL 2021. 3. 2. 14:11
[프로그래머스]중성화 여부 파악하기 programmers.co.kr/learn/courses/30/lessons/59409 코딩테스트 연습 - 중성화 여부 파악하기 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr 풀이 정규식, CASE를 사용하여 2가지 방법으로 풀었다. 코드 정규식을 사용한 방법 1 2 3 SELECT ANIMAL_ID, NAME, IF(SEX_UPON_INTAKE REGEXP 'Neutered|Spayed' , 'O'..
-
[프로그래머스]STRING,DATE - 이름에 el이 들어가는 동물 찾기문제풀이/SQL 2021. 3. 2. 13:54
[프로그래머스]이름에 el이 들어가는 동물 찾기 programmers.co.kr/learn/courses/30/lessons/59047 코딩테스트 연습 - 이름에 el이 들어가는 동물 찾기 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr 풀이 NAME에 EL이 들어가는 이름을 찾기 위해 LIKE를 사용해 주었다. 사용 방법은 다음과 같다. '%EL' : EL로 끝나는 문자열 'EL%' : EL로 시작하는 문자열 '%EL%' : EL로 시..