본문 바로가기

자바18

[백준] 15659번 : 연산자 끼워넣기(3) java https://www.acmicpc.net/problem/15659 15659번: 연산자 끼워넣기 (3) 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, www.acmicpc.net 풀이 풀이 자체는 브루토포스 이지만, '식의 계산은 연산자 우선 순위를 이용해 계산해야 한다' 라는 문장에서 많이 막혔을 것이다... 나도 풀이가 도저히 떠오르지 않아서 찾아봤다 ... 우선순위 계산할땐 Deque자료구조를 이용하여 풀면된다. 연산자가 +, - 이면 우선순위가 낮으니 Deque의 마지막에 넣어주고, 연산자가 *, / 이.. 2023. 8. 25.
[백준] 16471번 : 작은 수 내기 (JAVA) https://www.acmicpc.net/problem/16471 16471번: 작은 수 내기 여자친구와 함께 보드게임카페에 간 주언이는, 여러 보드게임을 하며 데이트를 즐겼다. 3시간 커플세트로 결제를 하려던 순간, 주언이는 가격표 옆에 쓰여 있는 새로운 이벤트를 보았다. 바로 www.acmicpc.net 풀이 정렬, 그리디 문제이다. 조건을 문제에 다 적어줘서 그대로 구현만 하면된다. 주언이가 카드를 냈을 때 사장님이 낸 카드의 조건이 다음과 같아야 한다. 1. 주언이의 카드보단 숫자가 커야한다 2. 1조건에 부합하는 카드중 가장 작은 숫자여야 한다. 그래야 주언이가 이길 수 있는 최선의 로직을 탐색할 수 있다. 풀이 과정을 살펴보자 1. 먼저 주언이의 카드와 사장님의 카드를 오름차순으로 정렬해준다.. 2023. 7. 7.
[프로그래머스] 호텔 대실 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.
[프로그래머스] 카카오 기출 - n진수 게임 https://school.programmers.co.kr/learn/courses/30/lessons/17687 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 각각 idx를 잡고 말하는 순서와 참가하는 인원을 계속 돌면서 튜브가 말하는 차례이면 StringBulider에 값을 추가해주는 식으로 풀었다. 개인적인 난이도는 백준 기준 실버 4 ? 정도 이지 않을까.. class Solution { public static void main(String[] args) { new Solution().solution(2, 4, 2, 1); } // n ->.. 2023. 6. 20.
[백준] 16206번 : 연산자 끼워넣기 java 문제 설명 N개의 수로 이루어진 수열 A1, A2, ..., AN이 주어진다. 또, 수와 수 사이에 끼워넣을 수 있는 N-1개의 연산자가 주어진다. 연산자는 덧셈(+), 뺄셈(-), 곱셈(×), 나눗셈(÷)으로만 이루어져 있다. 우리는 수와 수 사이에 연산자를 하나씩 넣어서, 수식을 하나 만들 수 있다. 이때, 주어진 수의 순서를 바꾸면 안 된다. 예를 들어, 6개의 수로 이루어진 수열이 1, 2, 3, 4, 5, 6이고, 주어진 연산자가 덧셈(+) 2개, 뺄셈(-) 1개, 곱셈(×) 1개, 나눗셈(÷) 1개인 경우에는 총 60가지의 식을 만들 수 있다. 예를 들어, 아래와 같은 식을 만들 수 있다. 1+2+3-4×5÷6 1÷2+3+4-5×6 1+2÷3×4-5+6 1÷2×3-4+5+6 식의 계산은 연산자.. 2023. 5. 31.
[백준] 16206번 : 롤케이크 java 문제 설명 오늘은 재현이의 생일이다. 재현이는 친구 N명에게 롤케이크를 1개씩 선물로 받았다. 롤케이크의 길이는 A1, A2, ..., AN이다. 재현이는 길이가 10인 롤케이크만 먹는다. 따라서, 롤케이크를 잘라서 길이가 10인 롤케이크를 최대한 많이 만들려고 한다. 롤케이크는 다음과 같은 과정을 통해서 자를 수 있다. 자를 롤케이크를 하나 고른다. 길이가 1보다 큰 롤케이크만 자를 수 있다. 이때, 고른 롤케이크의 길이를 x라고 한다. 0보다 크고, x보다 작은 자연수 y를 고른다. 롤케이크를 잘라 길이가 y, x-y인 롤케이크 두 개로 만든다. 재현이는 롤케이크를 최대 M번 자를 수 있다. 이때, 만들 수 있는 길이가 10인 롤케이크 개수의 최댓값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 롤.. 2023. 5. 30.