본문 바로가기

Algorithm94

[알고리즘 문제풀이] 프로그래머스 - 괄호 회전하기 / JAVA(자바) https://programmers.co.kr/learn/courses/30/lessons/76502 코딩테스트 연습 - 괄호 회전하기 programmers.co.kr /** 1. s의 길이만큼 회전 1-1) stringBuilder 사용 2. 회전시 해당 문자열이 올바른 괄호 문자열인지 체크 2-1) stack 사용 **/ import java.util.*; class Solution { public int solution(String s) { int answer = 0; StringBuilder sb = new StringBuilder(s); for(int i = 0; i < s.length(); i++){ if(check(sb.toString())) answer++; sb.append(sb.char.. 2022. 2. 18.
[알고리즘 문제풀이] 백준 - N과M(2) / JAVA(자바) https://www.acmicpc.net/problem/15650 15650번: N과 M (2) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 선행학습: 재귀 /* 1~N중에서 M개를 고른 수열 오름차순 정렬이고 중복 없으므로 visited 개념으로 리스트를 만들어서 사용했으면 넘어갈것 그리고 다음 고른 숫자가 기존에 고른것보다 작으면 넘어갈것 */ import java.util.*; import java.io.*; public class Main { public static int n; public static int m; // 숫자.. 2022. 2. 6.
[알고리즘 문제풀이] 프로그래머스 - 수식 최대화 / JAVA(자바) https://programmers.co.kr/learn/courses/30/lessons/67257 코딩테스트 연습 - 수식 최대화 IT 벤처 회사를 운영하고 있는 라이언은 매년 사내 해커톤 대회를 개최하여 우승자에게 상금을 지급하고 있습니다. 이번 대회에서는 우승자에게 지급되는 상금을 이전 대회와는 다르게 다음과 programmers.co.kr /** 1. 연산자 우선순위 선정 1-1) 재귀로 선정 2. 문자열 파싱 2-1) arrayList 2개만들어서 숫자와 연산자 별도 보관 3. 연산자 순서에 따른 계산 2-1) 새로운 어레이리스트 생성하여 파싱한 정보 넣기 2-2) 연산자 우선순위대로 돌고, 연산자 어레이리스트 돌기 2-3) 동일한 연산자면 해당 위치의 숫자 어레이리스트 두개 빼내서 계산 2-.. 2022. 1. 31.
[알고리즘 문제풀이] 프로그래머스 - 사라지는 발판 / JAVA(자바) https://programmers.co.kr/learn/courses/30/lessons/92345 코딩테스트 연습 - 사라지는 발판 [[1, 1, 1], [1, 1, 1], [1, 1, 1]] [1, 0] [1, 2] 5 [[1, 1, 1], [1, 0, 1], [1, 1, 1]] [1, 0] [1, 2] 4 programmers.co.kr /** 1. dfs 완탐 2. A턴과 B턴을 구분 3. 본인 턴에서 움직인 후 그 정보를 상대턴으로 넘기기 4. 상대턴에서 이기거나 지거나 했을 경우 승패정보 + 움직인수 반환 5. 상대턴에서 졌으면, 본인턴은 이기는경우 6. 이기는경우엔 최소한으로 이길 수 있는 값 반환 7. 질경우엔 최대한으로 끌어서 지는 값 반환 **/ class Solution { publ.. 2022. 1. 30.
[알고리즘 문제풀이] 프로그래머스 - 파괴되지 않은 건물 / JAVA(자바) https://programmers.co.kr/learn/courses/30/lessons/92344 코딩테스트 연습 - 파괴되지 않은 건물 [[5,5,5,5,5],[5,5,5,5,5],[5,5,5,5,5],[5,5,5,5,5]] [[1,0,0,3,4,4],[1,2,0,2,3,2],[2,1,0,3,1,2],[1,0,1,3,3,1]] 10 [[1,2,3],[4,5,6],[7,8,9]] [[1,1,1,2,2,4],[1,0,0,1,1,2],[2,2,0,2,0,100]] 6 programmers.co.kr /** 누적합 개념 적용 1. 해당 스킬이 들어올때, 범위 시작부에 더해놓고, 범위 끝+1 범위에 빼두기 2. 누적합 배열 돌면서, 해당 앞의 값을 더해가기( 누적된 증감 값을 담아두기) 3. 해당 누적값 적.. 2022. 1. 30.
[알고리즘 문제풀이] 프로그래머스 - 양과 늑대 /JAVA(자바) https://programmers.co.kr/learn/courses/30/lessons/92343 코딩테스트 연습 - 양과 늑대 [0,0,1,1,1,0,1,0,1,0,1,1] [[0,1],[1,2],[1,4],[0,8],[8,7],[9,10],[9,11],[4,3],[6,5],[4,6],[8,9]] 5 [0,1,0,1,1,0,1,0,0,1,0] [[0,1],[0,2],[1,3],[1,4],[2,5],[2,6],[3,7],[4,8],[6,9],[9,10]] 5 programmers.co.kr /** 1. 루트노드 출발, dfs로 구현 2. edges를 가보기 3. 방문한곳은 -1로 처리 4. 방문할때마다 최대 양의 수 저장 5. 중간에 늑대의수가 같아지면 탈출 6. 반복은 visited로 제거 **/ .. 2022. 1. 30.
[알고리즘 문제풀이] 프로그래머스 - 양궁대회 / JAVA(자바) https://programmers.co.kr/learn/courses/30/lessons/92342 코딩테스트 연습 - 양궁대회 문제 설명 카카오배 양궁대회가 열렸습니다. 라이언은 저번 카카오배 양궁대회 우승자이고 이번 대회에도 결승전까지 올라왔습니다. 결승전 상대는 어피치입니다. 카카오배 양궁대회 운영위원 programmers.co.kr /** 1. n과 m으로 처리 2. info를 돌면서 이기는 방법 계산 3. 한번 넘어간곳은 중복체크 안하게 설정(pidx) 4. 이긴 라운드를 체크해놨다가, 점수 계산 5. 못이겼을 시엔 -1 반환 6. 같은 점수일땐 낮은 점수 더 많이 맞춘거 체크 **/ class Solution { public int max; public int[] victory , answe.. 2022. 1. 30.
[알고리즘 문제풀이] 프로그래머스 - 주차 요금 계산 / JAVA(자바) https://programmers.co.kr/learn/courses/30/lessons/92341 코딩테스트 연습 - 주차 요금 계산 [180, 5000, 10, 600] ["05:34 5961 IN", "06:00 0000 IN", "06:34 0000 OUT", "07:59 5961 OUT", "07:59 0148 IN", "18:59 0000 IN", "19:09 0148 OUT", "22:59 5961 IN", "23:00 5961 OUT"] [14600, 34400, 5000] programmers.co.kr /** 1. 주차시간 구하기 1-1) 최대 23:59분(또는 출차시간) - 입차시간 = 주차시간 1-2) 인트형으로 파싱 1-3) 입차 시에 해시 저장. 출차 시에 해시 삭제하면서 계산.. 2022. 1. 30.