알고리즘41 백준 1541번 잃어버린 괄호(JAVA) - 그리디 백준 1541번 https://www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net 문제설명 문자로된 식을 입력 받고 그 해당 식의 값이 최소로 만드는 괄호의 위치를 찾아서 계산 후에 최솟값을 출력한다. 접근 1. - 를 기준으로 문자열을 나눈다. 2. 나눠진 문자열들을 '+' 기준으로 나눈다음 각각 다 더한다. 3. 첫번째 값은 더해주고 나머지는 뺴주면서 최솟값으로 만든다. 코드 import java.io.*; import java.util.*; publi.. 2023. 2. 15. (LEVEL 2)프로그래머스 - 카펫(JAVA) 문제 입출력 예 풀이. 1. 노란색 격자가 가운데 있으려면 가로, 세로가 최소 3이상이어야 한다. ( i = 3부터 시작) 2. 3부터 시작하며 brown + yellow(sum) 의 약수를 구한다. 3. 약수이면서 3이상 일때, 각 가로, 세로의 -2 씩 한 값이 yellow랑 같을 때 answer에 넣어준다. 코드 class Solution { public int[] solution(int brown, int yellow) { int[] answer = new int[2]; int sum = brown+yellow; for(int i=3;i=3){ int col = Math.max(i,j); int row = Math.min(i,j); int center = (col-2) * (row-2); if(c.. 2023. 2. 9. (LEVEL 1)프로그래머스 - 같은 숫자는 싫어(JAVA) 문제 입출력 예 풀이. 1. 값을 담을 Stack을 2개 선언한다. 2. 첫 Stack에 arr의 첫번째 값을 넣어두고 인덱스 1부터 길이만큼 반복문을 돈다. >> 반복문을 돌며 stk에 제일 위에있는 값이 현재 값(arr[i]) 과 같지 않을때만 값을 추가. 3. size에 현재 stk의 size를 저장해놓음 4. 값을 반환할 answer의 크기를 size만큼 선언 5. size크기 만큼 반복문을 돌며 stk에 저장된 값들을 하나씩 두번째 스택인 temp에 저장 6. temp저장된 값들을 다시 하나씩 answer에 저장 --> 스택을 두개 만들어서 진행한 이유는 스택은 LIFO의 특성을 가지고있어 stk에 저장된 값을 꺼낼시 순서가 반대로 되어 한번더 스택에 진행하였음. 풀기는 했으나 풀이 방법이 효율.. 2023. 1. 30. (LEVEL 1)프로그래머스 - 로또의 최고 순위와 최저 순위(JAVA) 문제 입출력 예 풀이. 1. 크기만큼 반복문을 돌며 lottos에 저장된 값과 win_nums에 저장된값을 하나씩 비교하며 0의 개수, 일치하는 개수를 따로 저장. 2. 기존 로또와 다르게 등수는 1등-6개/2등-5개/3등-4개/4등-3개/5등-2개/그외 6등으로 이걸 식으로 계산해보면 (7 - 맞춘개수)를하면 등수가 된다. 예외로 맞춘개수가 없을경우 최저순위는 6등이므로 min(7-맞춘개수,6)을 통해 최저순위를 6등으로 치환해준다. 3. 맞춘개수와 0의 개수에 따라서 최고순위(7-맞춘개수+0의개수) 와 최저순위(7-맞춘개수) 를 따로 저장, 코드 class Solution { public int[] solution(int[] lottos, int[] win_nums) { // 1등-6개 2등-5개 3.. 2023. 1. 18. 이전 1 ··· 3 4 5 6 7 8 9 ··· 11 다음