[프로그래머스] 기능 개발 - 42586 (Java)
·
알고리즘/Java
문제 URLhttps://school.programmers.co.kr/learn/courses/30/lessons/42586문제 설명소프트웨어 개발 팀이 진행 중인 각 기능은 진도가 100%가 되어야 배포 가능합니다. 각 기능은 개발 속도가 다르며, 뒤에 있는 기능은 앞에 있는 기능이 배포될 때 함께 배포될 수 있습니다. 이때 각 배포마다 몇 개의 기능이 배포되는지를 계산하는 문제입니다.나의 풀이import java.util.*class Solution { public ArrayList solution(int[] progresses, int[] speeds) { ArrayList answer = new ArrayList(); ArrayDeque queue = new Arra..
[백준] 1158. 요세푸스 문제 (Java8) - ArrayDeque 활용
·
알고리즘/Java
문제 URLhttps://www.acmicpc.net/problem/1158문제 설명1번부터 N번까지 사람들을 원형으로 나열하고, K번째 사람을 제거합니다. 제거된 사람을 제외한 나머지 사람들이 다시 원형으로 나열되며, 이 과정을 반복합니다. 모든 사람이 제거될 때까지 진행하며, 제거된 순서를 출력하는 문제입니다.나의 풀이1. Queue활용import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.*;public class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReade..
[프로그래머스] 컨트롤 제트 - 120853 (Java)
·
알고리즘/Java
문제 URLhttps://school.programmers.co.kr/learn/courses/30/lessons/120853문제 설명문자열 s는 공백으로 구분된 숫자와 명령어 "Z"로 구성되어 있습니다.숫자는 점수로 더해지며, "Z"는 바로 이전에 더했던 점수를 취소합니다.모든 점수의 합을 구하세요.예제 입력/출력Input: "1 2 Z 3"Output: 4 (1 + 3)나의 코드1. 기본 접근 방법 문제를 푸는 가장 직관적인 방법은 최근 숫자를 기억하여 "Z"가 등장했을 때 이를 취소하는 방식입니다.class Solution { public int solution(String s) { int answer = 0; // 점수 합 int lastNum = 0; ..
[프로그래머스] 같은 숫자는 싫어 - 12906 (Java)
·
알고리즘/Java
문제 URLhttps://school.programmers.co.kr/learn/courses/30/lessons/12906나의 코드1. 스택 활용peek() 메서드로 마지막 값을 확인하고 현재 값이 다를 경우에만 스택에 추가합니다.스택은 후입선출 (LIFO) 구조이기 때문에 결과를 배열로 변환할 때 역순으로 처리해야 합니다.import java.util.*;public class Solution { public int[] solution(int []arr) { Stack stack = new Stack(); for(int num : arr){ if(stack.empty()){ stack.push(num); ..
[프로그래머스] 표 편집 - 81303 (Java)
·
알고리즘/Java
문제 URLhttps://school.programmers.co.kr/learn/courses/30/lessons/64061나의 코드import java.util.Arrays;import java.util.Stack;public class Solution { public String solution(int n, int k, String[] cmd) { Stack deleted = new Stack(); // 배열 크기를 n으로 설정하고 초과 인덱스 처리 int[] up = new int[n]; int[] down = new int[n]; // 초기 연결 리스트 관계 설정 for (int i = 0; i 해결 방법1. 배열을 ..
[프로그래머스] 크레인 인형 뽑기 게임 - 64061 (Java)
·
알고리즘/Java
문제 URLhttps://school.programmers.co.kr/learn/courses/30/lessons/64061나의 코드import java.util.*;class Solution { public int solution(int[][] board, int[] moves) { int answer = 0; Stack stack = new Stack(); for(int move : moves){ for(int i = 0; i 0){ board[i][move - 1] = 0; if(stack.isEmpty()){ stack.pus..
[프로그래머스] 주식가격 - 42584(Java)
·
알고리즘/Java
문제 URLhttps://school.programmers.co.kr/learn/courses/30/lessons/42584나의 코드 (O(N²) 알고리즘)class Solution { public int[] solution(int[] prices) { int[] answer = new int[prices.length]; for(int i = 0; i prices[j]) { break; } } answer[i] = cnt; } return answer; }}설명이중 for 문을 사용하여 현재 시점의 가격과 이후의 가격들을 하나씩 비교합니다...
[프로그래머스] 괄호 회전하기 - 76502(Java)
·
알고리즘/Java
문제 URLhttps://school.programmers.co.kr/learn/courses/30/lessons/76502나의 코드import java.util.*;class Solution { public int solution(String s) { int answer = 0; // 괄호 쌍을 매핑하는 HashMap 생성 HashMap map = new HashMap(); map.put(']', '['); map.put('}', '{'); map.put(')', '('); // 문자열을 회전하며 유효한 괄호인지 확인 A: for (int i = 0; i stack = new Stack(); ..