본문 바로가기

PS5

[백준] 16471번 : 작은 수 내기 (JAVA) https://www.acmicpc.net/problem/16471 16471번: 작은 수 내기 여자친구와 함께 보드게임카페에 간 주언이는, 여러 보드게임을 하며 데이트를 즐겼다. 3시간 커플세트로 결제를 하려던 순간, 주언이는 가격표 옆에 쓰여 있는 새로운 이벤트를 보았다. 바로 www.acmicpc.net 풀이 정렬, 그리디 문제이다. 조건을 문제에 다 적어줘서 그대로 구현만 하면된다. 주언이가 카드를 냈을 때 사장님이 낸 카드의 조건이 다음과 같아야 한다. 1. 주언이의 카드보단 숫자가 커야한다 2. 1조건에 부합하는 카드중 가장 작은 숫자여야 한다. 그래야 주언이가 이길 수 있는 최선의 로직을 탐색할 수 있다. 풀이 과정을 살펴보자 1. 먼저 주언이의 카드와 사장님의 카드를 오름차순으로 정렬해준다.. 2023. 7. 7.
[프로그래머스] 할인행사 (JAVA) https://school.programmers.co.kr/learn/courses/30/lessons/131127 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 Map의 자료구조를 사용하여 쉽게 풀 수 있는 문제이다. 1. Map에 필요한 물건을 key, 개수를 value로 생성해준다. 2. discount의 9일전까지 반복을 해준다 (그 이상은 마트에 등록을해도 10일이 안채워지기 때문) 3. 현재 마트에서 할인하는 물품이 wantCount에 없는 물품이라면 다음날로 이동 (결국 모든 물품을 사지 못하기때문에) 4. 위까지 통과하였다면 map에서.. 2023. 7. 5.
[프로그래머스] 택배상자(JAVA) https://school.programmers.co.kr/learn/courses/30/lessons/131704# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 보조 컨테이너 벨트는 앞 뒤로 이동이 가능하지만 입구 외에 다른 면이 막혀 있어서 맨 앞의 상자만 뺄 수 있습니다(즉, 가장 마지막에 보조 컨테이너 벨트에 보관한 상자부터 꺼내게 됩니다). 위 문장에서 말하는 "보조 컨테이너 벨트에 보관한 상자"를 생각해보면, 보조 컨테이너 벨트는 상자들을 쌓는 구조로 이루어져 있을 것이다. 그렇다면 stack 자료구조를 사용하는것이 적절하다. 먼저 se.. 2023. 7. 4.
[프로그래머스] 호텔 대실 https://school.programmers.co.kr/learn/courses/30/lessons/155651 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 자바에서는 PriorityQueue(우선순위 큐)를 이용해서 쉽게 풀 수 있다. 천천히 살펴보자 1. book_time 값을 int 형태로 변환 -> 10분간 청소한다 라는 조건이 없으면 string으로 사용해도 되지만 10분간 청소한다는 조건이 있어 int형으로 변환 후 시간을 추가해 주어야 한다. 2. int[][] 배열을 입장시간 기준으로 정렬 -> Compartor.comparing.. 2023. 7. 4.
[프로그래머스] 카카오 기출 - 양궁대회 https://school.programmers.co.kr/learn/courses/30/lessons/92342 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 n의 범위가 10으로 아주 작아 완전탐색으로 풀이가 가능하다. 하지만 완전탐색 돌릴시 시간초과가 날 수 있기 때문에 몇가지 주의사항이 필요하다 1. 유망한 조건에 대해서만 반복하기 -> dfs 내에서 for문을 돌릴 때 현재 라이언이 어피치보다 화살을 맞춘 갯수가 많으면 더 이상 돌릴필요가 없다. 2. 점수 계산시 0점은 제외하기 -> 0점은 계산해봤자 의미가 없기때문에 제외시켜준다. -> .. 2023. 7. 4.