본문 바로가기

Algorithm30

[백준] 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.
[Softeer] 바이러스 - JAVA 바이러스 문제 바로가기 풀이 음.. 값이 21억을 초과할 수 있으니 Long 타입으로 받으면 된다. 그 외에는 딱히 설명이 필요 없을 것 같다. import java.util.*; import java.io.*; public class Main { public static void main(String args[]) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); long K = Long.parseLong(st.nextToken()); long P = Long.parseLong(st... 2023. 8. 3.
[Softeer] GBC - JAVA GBC 문제 바로가기 풀이 구현 문제이다. 엘리베이터의 속도를 계산해서 테스트 중일때 제한속도를 초과할 경우 가장 큰 값을 구해주면 된다. 크게 3가지 경우가 있다. 1. 제한속도 체크 구간의 길이가 테스트 구간 길이보다 작을경우 2. 제한속도 체크 구간의 길이가 테스트 구간 길이보다 클 경우 3. 두 개가 같을경우 위에 경우의수에 알맞은 구현을 해주면 된다. import java.util.*; import java.io.*; import java.util.stream.IntStream; public class Main { public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new .. 2023. 8. 3.
[Softeer] 회의실 예약 - JAVA 회의실 예약 문제 바로가기 풀이 소프티어 lv2 문제중엔 가장 어려운듯?.. 로직자체는 간단하지만, 구현이 꽤 복잡하다. 먼저 2개의 컬렉션이 사용한다. 1. mettingRoomList -> 단순히 회의실의 이름을 저장하는 리스트 2. reservationManageMap * Key: 회의실 이름 * Value : 예약한 시간을 나타내는 boolean 배열 map에 저장을 할때는 회의 시작 시간부터 회의 종료 시간까지 순회하며 값을 true로 바꿔줬다. (종료시간은 포함하지 않는다. 문제에도 나와있지만, 종료시간과 시작시간은 겹칠 수 있기 때문이다.) 그후 회의실 이름을 정렬 후 map에서 순회하며 StringBuilder에 값을 넣어주면되는데, 이 과정이 좀 복잡했다... 나머지는 아래 코드 참조.... 2023. 8. 3.
[Softeer] 비밀 메뉴 - JAVA 비밀 메뉴 문제 바로가기 풀이 int 배열로 풀면 구현하기가 귀찮아져서 String으로 받아 푸는게 편하다. String 으로 2개의 문자열을 받아 공백 제거 후 사용자가 클릭했던 버튼에 비밀코드가 포함되어 있는지만 체크해주면 된다. import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); br.readLine(); String target = br.readLine().replace(" ", ""); String click.. 2023. 8. 3.
[Softeer] 지도 자동 구축 - JAVA 지도 자동 구축 문제 바로가기 풀이 규칙을 찾으면 되는 수학(?) 문제이다. 정사각형의 각 변의 중앙에 점을 하나 추가한다. 라는 문장을 보아 N이 증가할때마다 한줄에 점의 개수는 dot - 1 + dot 라는걸 추측할 수 있다. 이걸 코드에 적용시켜주면 된다. import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int N = Integer.parseInt(br.readLine()); int dot = 2; while.. 2023. 8. 3.