본문 바로가기

728x90

자바

[프로그래머스] (2024 KAKAO WINTER INTERNSHIP) 산 모양 타일링 / 자바(Java) 문제 https://school.programmers.co.kr/learn/courses/30/lessons/258705 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해설 경우의 수를 10007(큰 소수)로 나누어 return해야하는 점에서 단순 구현으로 해결할 수 없고 이전 값에서 다음 값을 아는 DP를 사용해 해결하는 문제입니다. 점화식 형태로 풀어내기 위해서 어떤 형태들을 만들 수 있는지 파악하고 다음 값에 영향을 주는 요소를 알아야 합니다. 기본 모형인 큰 정삼각형을 덮는 방식은 4가지 입니다. 1. 정삼각형 타일 2. 왼쪽 정삼각형 + 중간 정.. 더보기
[프로그래머] (2024 KAKAO WINTER INTERNSHIP) 도넛과 막대 그래프 / 자바(Java) 문제 https://school.programmers.co.kr/learn/courses/30/lessons/258711 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해설 오직 간선들로만 주어진 값들을 이용해 3가지 그래프의 개수와 그래프에 포함되지 않는 노드 하나를 구하는 문제입니다. 처음 문제를 보았을 때 그래프를 순환으로 확인해야 하나 고민이 많았지만 생각의 방법을 바꾸어 찾아야 하는 것들의 특징들을 이용했습니다. 찾아야하는 요소는 총 4개 생성한 정점의 번호, 도넛모양그래프의 수, 막대모양 그래프의 수, 8자모양 그래프의 수입니다. 1. 생성한 .. 더보기
[프로그래머스] (2024 KAKAO WINTER INTERNSHIP) 가장 많이 받은 선물 / 자바(Java) 문제 https://school.programmers.co.kr/learn/courses/30/lessons/258712 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해설 선물을 주고 받은 기록을 정리하고 그 기록을 바탕으로 이번에 선물을 최대로 많이 받은 사람의 선물 수를 구하는 문제입니다. 선물기록을 2차원 배열로 정리하여 이번에 선물을 받는 경우를 쉽게 구하도록 하는 것이 이번 문제의 요점인듯 싶습니다. friends의 입력값이 모두 문자열 이기 때문에 각 문자열에 대응하는 이름을 빠르게 찾기 위해 Map을 사용해 이름들을 들어오는 순으로 숫자를 .. 더보기
[프로그래머스] PCCP 기출문제 3번 (아날로그 시계) / 자바(Java) 문제 https://school.programmers.co.kr/learn/courses/30/lessons/250135?language=java 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해설 시침, 분침과 초침이 만나는 횟수를 구하는 문제입니다. 특정 범위의 시간을 구하기 까다로워 단순하게 만들기 위해 00시 00분 00초에서 시작 시간과 끝 시간의 횟수를 구해 그 차이를 구하는 것으로 변형하여 해결하였습니다. 각 시간을 구하는데에는 1. 시침이 해당 시점까지 몇번 초침과 만났는가 2. 분침이 해당 시점까지 몇번 초침과 만났는가 3. 해당 시점에 .. 더보기
[프로그래머스] PCCP 기출문제 1번 (붕대 감기) / 자바(Java) 문제 https://school.programmers.co.kr/learn/courses/30/lessons/250137 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해설 매 초마다 몬스터가 공격을 하는 여부를 판단하며 문제를 해결할 수 있지만 붕대의 회복은 1초에 계속되며 특정한 주기별로 한번씩 추가 회복이 된다는 점을 생각하면 결국 계산이 필요한 시점은 몬스터에게 공격당하는 시점 뿐입니다. 따라서 몬스터의 공격이 담긴 배열을 기준으로 for문을 돌리며 문제 내용을 구현하여 해결할 수 있었습니다. 1. 지금까지 회복된 양을 반영하기 2. 몬스터에게 공.. 더보기
[프로그래머스] PCCP 기출문제 2번 (석유 시추) / 자바(Java) 문제 https://school.programmers.co.kr/learn/courses/30/lessons/250136 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해설 PCCP의 기출문제로 석유시추라는 이름을 가진 문제입니다. 제한 사항에 정확성과 효율성을 확인하는 부분이 있어 조건에 맞도록 구현 뿐 아니라 가능한 효율적이도록 코드를 짜야합니다. 시추관은 특정 열을 모두 관통하는데 해당 열에 포함된 석유 덩어리를 모두 시추가 가능합니다. 하나의 시추관을 사용할 때 시추가능한 최대 석유의 양을 구하는 문제입니다. 문제를 해결하기 위해선 각 열별로 시추.. 더보기
[백준] 17143 낚시왕 / 자바(Java) 문제 https://www.acmicpc.net/problem/17143 17143번: 낚시왕 낚시왕이 상어 낚시를 하는 곳은 크기가 R×C인 격자판으로 나타낼 수 있다. 격자판의 각 칸은 (r, c)로 나타낼 수 있다. r은 행, c는 열이고, (R, C)는 아래 그림에서 가장 오른쪽 아래에 있는 칸이다. www.acmicpc.net 해설 상어 객체를 만들어 낚시왕이 상어를 잡는 부분에는 상어배열을, 상어가 이동하는 부분에는 상어 큐를 사용해서 해결하였습니다. 상어의 이동 부분에 상어 큐를 사용한 이유는 상어의 이동들은 모두 동시에 이동하기 때문에 큐로 상어 객체이 이동된 이후의 값을 추가하며 넣고 배열에 다시 넣으며 상어끼리 먹는 구간을 구현했습니다. 코드 import java.io.BufferedR.. 더보기
[백준] 17144 미세먼지 안녕! / 자바(Java) 문제 https://www.acmicpc.net/problem/17144 17144번: 미세먼지 안녕! 미세먼지를 제거하기 위해 구사과는 공기청정기를 설치하려고 한다. 공기청정기의 성능을 테스트하기 위해 구사과는 집을 크기가 R×C인 격자판으로 나타냈고, 1×1 크기의 칸으로 나눴다. 구사 www.acmicpc.net 해설 2차원배열에서의 탐색을 구현하는 문제입니다. 크게 2단계로 이루어져 있으며 미세먼지가 확산되는 단계와 공기가 순환하는 단계가 있습니다. 1단계 : 미세먼지 확산 확산의 규칙 1. 인접한 네 방향으로 확산하되 벽과 공기청정기로는 확산되지 않는다. 2. 확산된 곳에는 (본래의 값/5) 의 값만큼 먼지가 추가된다(소수점자리는 이산수학으로 / 사용시 제거된다) 3. 본래의 위치에는 (본래의 .. 더보기

728x90