본문 바로가기

전체 글105

백준 19236 청소년 상어 - 삼성 SW 역량 테스트 기출 백준 19236 청소년 상어 - 삼성 SW 역량 테스트 기출 1. 문제 링크 https://www.acmicpc.net/problem/19236 19236번: 청소년 상어 첫째 줄부터 4개의 줄에 각 칸의 들어있는 물고기의 정보가 1번 행부터 순서대로 주어진다. 물고기의 정보는 두 정수 ai, bi로 이루어져 있고, ai는 물고기의 번호, bi는 방향을 의미한다. 방향 bi는 www.acmicpc.net 2. 문제 해결에 대한 아이디어 1. 번호 순서대로 물고기가 이동해야 하기 때문에, fishList에 물고기 정보를 담아 번호를 기준으로 오름차순 sorting했다. . 이로 인해 index로 특정 no의 물고기 정보에 접근할 수 있다. 2. 죽은 물고기는 deadList에 "번호"만 넣었고, 죽은 물고.. 2021. 9. 25.
백준 19237 어른 상어 - 삼성 SW 역량 테스트 기출 백준 19237 어른 상어 - 삼성 SW 역량 테스트 기출 1. 문제 링크 https://www.acmicpc.net/problem/19237 19237번: 어른 상어 첫 줄에는 N, M, k가 주어진다. (2 ≤ N ≤ 20, 2 ≤ M ≤ N2, 1 ≤ k ≤ 1,000) 그 다음 줄부터 N개의 줄에 걸쳐 격자의 모습이 주어진다. 0은 빈칸이고, 0이 아닌 수 x는 x번 상어가 들어있는 칸을 의미 www.acmicpc.net 2. 문제 해결에 대한 아이디어 1. 상어의 방향 정보는 번호 순서대로 입력 받기 때문에 상어 리스트를 번호를 기준으로 sorting 해야한다. 2. 격자는 Tile(상어 번호, 냄새 번호, 냄새 잔여시간) 의 2차원 배열로 구성했다. 3. 이 문제는 고려해야할 것이 아주 많다... 2021. 9. 25.
백준 16236 아기 상어 - 삼성 SW 역량 테스트 기출 백준 16236 아기 상어 - 삼성 SW 역량 테스트 기출 1. 문제 링크 https://www.acmicpc.net/problem/16236 16236번: 아기 상어 N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다. 아기 상어와 물고기는 모두 크기를 가 www.acmicpc.net 2. 문제 해결에 대한 아이디어 1. 상어가 움직임을 멈추는 경우는 두 가지가 있다. . 모든 물고기를 먹은 경우 . 자기보다 크기가 크거나 같은 물고기만 남은 경우 2. 상어의 위치를 기준으로 BFS 하여 처음 물고기를 만나는 거리(비용)을 minDist에 저장한다. 3. 업데이트 된 minDist와 같은 거리에 .. 2021. 9. 24.
프로그래머스 LV.2 위장 프로그래머스 LV.2 위장 1. 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/42578 코딩테스트 연습 - 위장 programmers.co.kr 2. 문제 해결에 대한 아이디어 1. 간단하게 얼굴, 상의, 하의, 겉옷을 입는 경우의 수를 구하는 문제이다. 2. 이를 위해, HashMap hm에 key : 옷의 종류, value : 옷의 수 를 저장했다. 3. 그리고 hm에서 하나씩 꺼내면서 아예 안 입는 경우를 포함한 value + 1을 answer에 곱해줬다. 4. 마지막으로 어떤 옷도 안 입는 경우가 포함되어 있으므로 --answer를 해준다. 3. 코드 import java.util.HashMap; public class Solution { .. 2021. 9. 24.
프로그래머스 LV.2 프린터 프로그래머스 LV.2 프린터 1. 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/42587 코딩테스트 연습 - 프린터 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린 programmers.co.kr 2. 문제 해결에 대한 아이디어 1. 인쇄 대기목록의 앞 뒤에서 작업이 일어나므로 Deque를 사용했다. Deque q = new ArrayDeque(); 2. Work 클래스를 사용했으며, 요청 순서와 우선 순위로 구성하였다. 3. 먼저 int[] priorities에 있는 값들을 꺼내와 q에 넣었다. 4. q가 빌 떄.. 2021. 9. 23.
LV.3 프로그래머스 베스트앨범 LV.3 프로그래머스 베스트앨범 1. 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/42579 코딩테스트 연습 - 베스트앨범 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 programmers.co.kr 2. 문제 해결에 대한 아이디어 . HashMap hm 에 각 장르 별로 총 몇 번 재생되었는지 저장했다. . 그 후, ArrayList ranks에 hm에 있는 정보를 옮겨왔다. . ranks를 재생 수를 기준으로 내림차순으로 정렬했다. . 그 후, ranks를 순회하며 각 노래의 정보를 가지고, genres[.. 2021. 9. 23.