본문 바로가기

Java38

[Softeer] 금고털이 - JAVA 금고털이 문제 바로가기 풀이 이번문제는 문제대충 읽고 배낭문제로 접근했었는데 자세히보니 톱으로 자를수 있다?... 근데 설명이 좀 난해한 부분이 있는 것 같다. 무게당 가격이란 단어때매 햇갈렸다.. 무게당 가격의 의미는 해당 보석의 가격이 아니라 1g당 가격을 의미한다. 즉, 높은 무게로 정렬을 하고 배낭을 가득채워주면 된다 그러므로 정렬, 그리디 알고리즘으로 접근하면 된다. 로직은 크게 어려울게 없다. 정렬 후 배낭에 보석들을 채워가며 넣어주다가 배낭이 가득차면 멈추면된다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.. 2023. 8. 2.
[백준] 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/92342 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 n의 범위가 10으로 아주 작아 완전탐색으로 풀이가 가능하다. 하지만 완전탐색 돌릴시 시간초과가 날 수 있기 때문에 몇가지 주의사항이 필요하다 1. 유망한 조건에 대해서만 반복하기 -> dfs 내에서 for문을 돌릴 때 현재 라이언이 어피치보다 화살을 맞춘 갯수가 많으면 더 이상 돌릴필요가 없다. 2. 점수 계산시 0점은 제외하기 -> 0점은 계산해봤자 의미가 없기때문에 제외시켜준다. -> .. 2023. 7. 4.
[프로그래머스] 혼자 놀기의 달인 https://school.programmers.co.kr/learn/courses/30/lessons/131130?language=java 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 따로 부연설명이 필요 없을 것 같다. cards 배열 전체순회하며, 방문한 카드는 방문하지 않고, count 를 비교해주며 firstMax와 secondMax를 갈아치워주는 로직 여기서 주의할점은 단 한가지이다. firstMax 값을 업데이트할 때 secondMax값을 firstMax값으로 넣어줘야 한다. class Solution { public int solut.. 2023. 6. 20.