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

자바20

[프로그래머스] [자바] 해시/베스트앨범 문제 출처 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.
[SWEA] [자바] 1949. 등산로 조성 문제 출처 swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PoOKKAPIDFAUq SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 1. 풀이 접근 ㆍ 가장 높은 봉우리를 리스트에 저장 ㆍ 모든 지도의 위치에서 1부터 K까지 등산로를 깎음 ㆍ 저장해둔 가장 높은 봉우리에서 출발해서 가장 낮은곳 까지 이동하는 거리를 BFS로 체크 ㆍ 가장 멀리 이동한 거리를 저장하고 최대값 산출을 위해 비교 후 출력 2. 소스코드 github.com/Choi-JinYeong/Solve_Alg/tree/master/Solve_Algs_SWEA/src/.. 2021. 4. 4.
[SWEA] [자바] 5656. 벽돌 깨기 문제 출처 swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWXRQm6qfL0DFAUo SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 1. 풀이 접근 ㆍ 벽돌을 떨어뜨릴 수 있는 경우의 수를 순열로 산출 ㆍ 순열에 맞추어 벽돌 깨기 시작 - 순열로 뽑아낸 가로 위치에서 처음으로 만나는 벽돌세로 위치 산출 - 만약 세로에 깰 벽돌이 없으면 스킵 ㆍ 있으면 연쇄작용으로 부심 - BFS이용해서 부심. 탐색 시 부시는 벽돌의 숫자-1만큼 반복해서 상하좌우 탐색해야 됨 - 부실 수 있는 벽돌의 경우 따로 배열을 활용해서 체크 ㆍ 부실 수 있는.. 2021. 4. 3.
[백준] [자바] 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.
728x90