본문 바로가기
  • "하나씩 기록하다보면 누군가에게 도움이 되지 않을까"
728x90

풀이15

[프로그래머스] [자바] 해시/베스트앨범 문제 출처 https://programmers.co.kr/learn/courses/30/lessons/42579 코딩테스트 연습 - 베스트앨범 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 programmers.co.kr 1. 풀이 접근 ㆍ 해시사용해서 재생횟수 확인 ㆍ Comparator 사용하여 클래스의 순서를 정렬함 2. 소스코드 import java.util.*; class Music{ String g; int p; int o; } class prior{ String n; int p; } class Solution { public int[] solution(S.. 2022. 1. 26.
[SWEA] [자바] 1953. 탈주범 검거 문제 출처 swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PpLlKAQ4DFAUq SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 1. 풀이 접근 ㆍ 파이프 리스트 정리 ※ 상 : 0 , 하 : 1 , 좌 : 2 , 우 : 3 - 1번은 상하좌우 : "0123" - 2번은 상하 : "01" - 3번은 좌우 : "23" - 4번은 상우 : "03" - 5번은 하우 : "13" - 6번은 하좌 : "12" - 7번은 상좌 : "02" ㆍ 현재 탈주범의 위치를 시작으로 BFS탐색 시작 ※ BFS 탐색 시 소요 시간을 기준으로 L까지 잘.. 2021. 4. 6.
[백준] [자바] 3190번 : 뱀 출처 : www.acmicpc.net/problem/3190 3190번: 뱀 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임 www.acmicpc.net 1. 풀이 접근 ㆍ 현재 바라보는 방향으로 이동 (8:상, 6:우, 4:좌, 2:하) ※ 아직 좌표는 업데이트하기 전! 앞으로 향할 위치에 대해서 다른 변수를 이용해 저장 ㆍ 지도(범위 안에 있는지) 체크 ==> flag1 ㆍ 뱀이 너무 길어서 몸끼리 부딛쳤는지 확인 ==> flag2 ㆍ 조건문 확인 1) flag1 == true && flag2 == true - 머리가 있는 위치에 사과가 있는지 확인 == .. 2021. 4. 1.
[백준] [자바] 17144번 : 미세먼지 안녕! 문제 출처 www.acmicpc.net/problem/17144 17144번: 미세먼지 안녕! 미세먼지를 제거하기 위해 구사과는 공기청정기를 설치하려고 한다. 공기청정기의 성능을 테스트하기 위해 구사과는 집을 크기가 R×C인 격자판으로 나타냈고, 1×1 크기의 칸으로 나눴다. 구사 www.acmicpc.net 1. 풀이 접근 ㆍ 미세먼지 확산 ※ 미세먼지 확산 할 때 옆에 있는 칸이 서로 미세먼지가 있어도 각각이 확산되면서 서로 영향을 끼침 - 그래서 각각에 대한 값을 구한다음에 새로운 배열에 저장해서 보관하고 있다가 모든 프로세스가 끝나면 원래 배열에 덮어 씌우는 방식으로 해결 ㆍ 미세먼지 청정 - 입구에서부터 한칸씩 밀려서 회전 후 되돌아와 없어짐, 각각의 위치에 맞춰서 배열 회전 시킴 ※ 회전할 때.. 2021. 3. 29.
[백준] [자바] 16236번 : 아기 상어 문제 출처 www.acmicpc.net/problem/16236 16236번: 아기 상어 N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다. 아기 상어와 물고기는 모두 크기를 가 www.acmicpc.net 1. 풀이 접근 ㆍ 현재 먹이를 먹을 수 있는지 확인 ( 먹이 못 먹을 경우 종료 후 시간 출력 ) ㆍ 현재 위치로 부터 가장 가까운 먹이 찾기 (BFS 탐색) - 나보다 큰 먹이는 지나가지 못함 ( 벽 같은 역할 ) - 나의 크기와 같거나 작으면 지나 갈 수 있음 ※ 물고기를 현재 크기 만큼 먹어야 크기 성장함. Ex. 상어 크기 3 -> 3번먹어야 4로 진화 ㆍ 가장 가까운 곳에 먹을 수 .. 2021. 3. 26.
[백준] [자바] 10250번 : ACM 호텔 문제 출처 www.acmicpc.net/problem/10250 14503번: 로봇 청소기 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어 www.acmicpc.net 1. 풀이 접근 ㆍ 배열로 호수를 매핑해서 접근한다. ㆍ 호수가 604, 1010호 처럼 중간에 0이들어가거나 1자리로 구성될 경우에 대해서 예외처리 해주면 난이도는 굉장히 쉬운 문제이다. ㆍ 구현할 때 나머지 ( % )를 사용해서 구할 경우 나머지가 0으로 떨어지는 경우에 대해서 예외처리가 필요하다. 2. 소스코드 github.com/Choi-JinYeong/Solve_Alg/tree/master.. 2021. 3. 26.
[백준] [자바] 16234번 : 인구 이동 문제 출처 www.acmicpc.net/problem/16234 16234번: 인구 이동 N×N크기의 땅이 있고, 땅은 1×1개의 칸으로 나누어져 있다. 각각의 땅에는 나라가 하나씩 존재하며, r행 c열에 있는 나라에는 A[r][c]명이 살고 있다. 인접한 나라 사이에는 국경선이 존재한다. 모 www.acmicpc.net 1. 풀이 접근 ㆍ 유니온으로 나눌 구역을 찾음. 이 때 기준은 서로의 차이가 L보다 크고 R보다 작아야 함. ※ 이 때 처음 찾는곳을 기준으로 DFS로 같은 구역을 지정해야 함. ㆍ 구역이 찾아지면 구역의 평균값을 구해서 같은 구역일 경우 값 덮어쓰기. ㆍ 더이상 반복 할 수 없을 때 까지 수행 2. 소스코드 github.com/Choi-JinYeong/Solve_Alg/tree/ma.. 2021. 3. 25.
[백준] [자바] 14503번 : 로봇 청소기 문제 출처 www.acmicpc.net/problem/14503 14503번: 로봇 청소기 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어 www.acmicpc.net 1. 풀이 접근 · 로봇 청소기가 청소를 함 · 청소 한 뒤에 내가 바라보는 방향을 기준으로 왼쪽에 청소가 가능한지 체크 1. 청소가 가능한가 1-1. 청소 가능 - 왼쪽으로 회전 - 왼쪽으로 이동 - 1번으로 돌아감 - 청소한 구역의 위치를 표기하고, 지도에서 다른 숫자로 매칭 1-2. 청소 불가능 - 2번으로 이동 2. 네 방향을 확인 2-1. 네 방향이 다 청소가 되어 있거나, 벽으로 막혀 있.. 2021. 3. 24.
[백준] [자바] 15686번 : 치킨 배달 문제 출처 www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net 1. 풀이 접근 ㆍ 치킨집 위치와 고객집들의 위치를 각각 저장 ㆍ 치킨집 개수 N 중 M개 만 남겼을 때의 경우의 수 추출 ( NCM의 조합 개수 만큼 나옴 ) ㆍ 각 고객집 위치에 따라 M개의 치킨집 중 가장 최소 거리 추출해서 배열에 쭉 저장 (이 배열은 각 고객집 인덱스와 매칭됌) ㆍ 각 고객집 최소거리값을 더해서 전체 최소값이랑 비교 후 출력 2. 소스코드 github.c.. 2021. 3. 23.
[백준] [자바] 14888번 : 연산자 끼워넣기 문제 출처 www.acmicpc.net/problem/14888 14888번: 연산자 끼워넣기 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, www.acmicpc.net 1. 풀이 접근 ※ 연산자 순서에 곱하기 나누기 먼저 더하기 빼기 나중에 이런식이 아님! 기존의 법칙을 따라가지 않고 무조건 순서대로 진행 입력을 받아서 숫자들 따로 배열에 저장, 더하기 빼기 곱하기 나누기는 각 1,2,3,4 숫자로 매칭 더하기 빼기 곱하기 나누기 개수에 대한 순열(순서가 있는 경우의 수) 계산 순열 순서에 따라 입력된 수들을 .. 2021. 3. 21.
[백준] [자바] 15683번 : 감시 문제 출처 www.acmicpc.net/problem/15683 15683번: 감시 스타트링크의 사무실은 1×1크기의 정사각형으로 나누어져 있는 N×M 크기의 직사각형으로 나타낼 수 있다. 사무실에는 총 K개의 CCTV가 설치되어져 있는데, CCTV는 5가지 종류가 있다. 각 CCTV가 감 www.acmicpc.net 1. 풀이 접근 ㆍ CCTV는 최대 8개 까지 설치 할 수 있음. 가로 또는 세로 방향으로 회전 가능 - 최대 경우의 수가 4^8 나옴. ㆍ 경우의 수에 따라 카메라 특성에 맞게 탐색 가능한지 확인 - 벽을 만나거나, 경계 밖으로 나가면 취소 ※ 나는 완전 하드코딩해서 모든 경우의 수 카메라 종류 5대, 방향 4개에 맞추어 구분해서 탐색 진행하게 코드 짬. 무식하게 짬. ㆍ 탐색 다 되면 .. 2021. 3. 20.
[백준] [자바] 14501번 : 퇴사 문제 출처 www.acmicpc.net/problem/14501 14501번: 퇴사 첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다. www.acmicpc.net 1. 풀이 접근 조합으로 날짜 종류 계산 기준일까지 일 할 수 있는지 확인 벌 수 있는 금액 최대 값 계산 2. 소스코드 github.com/Choi-JinYeong/Solve_Alg/tree/master/Solve_Algs/src/Git_BJ_14501 Choi-JinYeong/Solve_Alg 알고리즘 풀이. Contribute to Choi-JinYeong/Solve_Alg development by creating an account on GitHub. github.com 3. 맺음말 체감 난이도 : 보통 백트래킹으로도 풀 수 있.. 2021. 3. 19.
[백준] [자바] 14499번 : 주사위 굴리기 문제 출처 www.acmicpc.net/problem/14499 14499번: 주사위 굴리기 첫째 줄에 지도의 세로 크기 N, 가로 크기 M (1 ≤ N, M ≤ 20), 주사위를 놓은 곳의 좌표 x y(0 ≤ x ≤ N-1, 0 ≤ y ≤ M-1), 그리고 명령의 개수 K (1 ≤ K ≤ 1,000)가 주어진다. 둘째 줄부터 N개의 줄에 지도 www.acmicpc.net 1. 풀이 접근 ㆍ주사위 모양을 배열로 정의함 - 0 뒤 0 - 좌 상 우 - 앞 - 하 ※ (주의) 입력을 받을 때 보통 생각하는 x, y 축이 바뀌어 있음. ㆍ주사위 이동 - 이동하면서 현재 주사위 값을 임시 변수에 저장하고 이동할 때마다 바뀌는 값들을 매칭해서 넣어줌 - if (이동하려고 하는 곳이 벽이면) * 이동 안함, 결과값.. 2021. 3. 19.
[백준] [자바] 14889번 : 스타트와 링크 문제 출처 : www.acmicpc.net/problem/14889 14889번: 스타트와 링크 예제 2의 경우에 (1, 3, 6), (2, 4, 5)로 팀을 나누면 되고, 예제 3의 경우에는 (1, 2, 4, 5), (3, 6, 7, 8)로 팀을 나누면 된다. www.acmicpc.net 1. 풀이 접근 조합으로 nCr 구함. n은 입력으로 주어지고 r은 n/2임. 나는 home팀, away팀으로 구분하였음. (Ex. 만약 사람수가 4면 2로 조합을 구하고 나머지 2가 상대팀, 사람수가 6이면 3으로 조합을 구하고 나머지 3이 상대팀 순) home팀, away팀에 대하여 점수를 다 더해야됌 (Ex. 1,2 3,4 로 팀이 나누어졌을 경우 S12와 S21 둘다 더해야됌 away 도 마찬가지) (Ex. 1.. 2021. 3. 18.
[백준] [자바] 14891번 : 톱니바퀴 문제 출처 www.acmicpc.net/problem/14891 14891번: 톱니바퀴 총 8개의 톱니를 가지고 있는 톱니바퀴 4개가 아래 그림과 같이 일렬로 놓여져 있다. 또, 톱니는 N극 또는 S극 중 하나를 나타내고 있다. 톱니바퀴에는 번호가 매겨져 있는데, 가장 왼쪽 톱니바퀴 www.acmicpc.net 1. 풀이 접근 회전하기 전에 미리 N극 S극에 대한 상태를 저장해 둠 회전할 때 기준점을 기준으로 왼쪽/오른쪽 나눠서 탐색 동시에 다 회전 ※ 소스 내에 과정에 있어서 이해하기 위해 간단한 주석 달아둠 2. 소스코드 github.com/Choi-JinYeong/Solve_Alg/blob/master/Solve_Algs/src/Git_BJ_14891/Main.java Choi-JinYeong/So.. 2021. 3. 17.
728x90