개발/PS 15

[백준] 1374 강의실

https://www.acmicpc.net/problem/1374 풀이구하고자 하는 것 : 필요한 최소 강의실 개수 해당 값을 구하기 위해 우선 시작 순서가 빠른 순서로 정렬 만약 시작 시간이 같다면 끝나는 시간이 더 빠른 걸로 정렬 no시작 시간종료 시간3214138562086272713412186152172025 강의실이 필요한 경우는이전 강의 종료 시간 > 다음 강의 시작 시간해당 경우에 강의실이 추가로 필요하다. 위 예제로 한번 천천히 보자 3번 강의(2 - 14)는 1번 강의실을 사용한다.1번 강의(3 - 8)는 1번 강의실이 이미 사용중이므로 2번 강의실에서 진행5번 강의(6 - 20) 또한 1,2번 강의실이 모두 강의 진행 중이므로 3번 강의실에서 진행 이런식으로 가다가 4번 강의(12 - ..

개발/PS 2024.11.05

[백준] 1038 감소하는 수

https://www.acmicpc.net/problem/1038 풀이찾고자 하는 값은 N 번째 감소하는 수를 찾아내면 된다. N번째 감소하는 수를 찾는 법은 굉장히 간단하다. 1~9까지 각 숫자로 시작하는 경우에서 나올 수 있는 값들을 찾으면 된다. 예시를 들어보면 가장 큰 자릿수가 2라고 했을 때  2, 20, 21, 210 이런 값들을 구해 나가면 된다.  해당 값들은 재귀를 통해서 찾아낼 수 있다.  % 10을 하는 이유는 해당 값의 1의 자리 수 다음으로 올 수 있는 값의 범위를 알아야 하기 때문이다. 예시로 num = 543일 경우 1의 자리 3 다음으로 올 수 있는 경우는 0,1,2재귀(int num) { for(int i = 0; i  전체 코드import java.io.BufferedRe..

개발/PS 2024.11.02

[백준] 6236 용돈관리

https://www.acmicpc.net/problem/6236 6236번: 용돈 관리현우는 용돈을 효율적으로 활용하기 위해 계획을 짜기로 하였다. 현우는 앞으로 N일 동안 자신이 사용할 금액을 계산하였고, 돈을 펑펑 쓰지 않기 위해 정확히 M번만 통장에서 돈을 빼서 쓰기로www.acmicpc.net문제현우는 용돈을 효율적으로 활용하기 위해 계획을 짜기로 하였다. 현우는 앞으로 N일 동안 자신이 사용할 금액을 계산하였고, 돈을 펑펑 쓰지 않기 위해 정확히 M번만 통장에서 돈을 빼서 쓰기로 하였다. 현우는 통장에서 K원을 인출하며, 통장에서 뺀 돈으로 하루를 보낼 수 있으면 그대로 사용하고, 모자라게 되면 남은 금액은 통장에 집어넣고 다시 K원을 인출한다. 다만 현우는 M이라는 숫자를 좋아하기 때문에, ..

개발/PS 2024.02.16

[백준] 2751 병합정렬

https://www.acmicpc.net/problem/2751 2751번: 수 정렬하기 2첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.www.acmicpc.net풀이해당 문제는 단순 정렬 문제이다. 하지만 정렬에는 종류가 아주 많다는거^^... 병합정렬로 풀이를 제출하면서 이전에 제출 기록이 있길래 코드를 살짝 봤더니...핰ㅋㅋㅋㅋㅋㅋㅋ그냥 ArrayList로 입력받은 값들을 넣은 다음 Collection.sort로 아주 간단하게 해결해버렸다...ㅎㅎ 편함을 추구한 과거의 나 반성하자 아무튼 병합정렬은 무엇이냐 하면 수열이 있을 때 중간 값을 기준으..

개발/PS 2023.10.25

[프로그래머스]신규 아이디 추천

https://school.programmers.co.kr/learn/courses/30/lessons/72410 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr public String solution(String new_id) { // 1단계 new_id의 모든 대문자를 대응되는 소문자로 치환합니다. new_id = new_id.toLowerCase(); // 2단계 new_id에서 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.)를 제외한 모든 문자를 제거합니다. new_id = new_id.replaceAll("[^a-z0-9-_.]", ..

개발/PS 2023.09.21

[프로그래머스]대충 만든 자판

https://school.programmers.co.kr/learn/courses/30/lessons/160586 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 public int[] solution(String[] keymap, String[] targets) { int[] answer = new int[targets.length]; HashMap map = new HashMap(); for (String s : keymap) { for (int j = 0; j < s.length(); j++) { int key = map.containsKey(..

개발/PS 2023.08.16

[프로그래머스]프로세스(java)

https://school.programmers.co.kr/learn/courses/30/lessons/42587 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 대략 35분 정도 걸린거 같다^^... public int solution(int[] priorities, int location) { int answer = 0; //우선순위 큐 Queue prio = new LinkedList(); //위치 즉 location 큐 Queue idx = new LinkedList(); //우선순위 큐는 그대로 넣고, location은 순서대로 초기화 for (i..

개발/PS 2023.06.30

[프로그래머스]크레인 인형뽑기 게임(java)

https://school.programmers.co.kr/learn/courses/30/lessons/64061 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 스택을 활용한 문제이다. 참고로 다른 사람의 풀이 중에서는 List를 이용해서 푸신 분들도 있다. public static int solution(int[][] board, int[] moves) { int answer = 0; Stack bucket = new Stack(); //peek 시에 최초에는 아무것도 없기 때문에 0을 넣어줌 bucket.push(0); for (int move : m..

개발/PS 2023.06.29