전체 글
[devmoon]프로그래머스 - 방문 길이
https://programmers.co.kr/learn/courses/30/lessons/49994 코딩테스트 연습 - 방문 길이 programmers.co.kr 1. 유형 구현 2. 시뮬레이션 한 점은 방문하는 방향에 따라 여러가지 경우의 수가 나옴. 따라서 3차원 배열을 활용해서 방문체크 'U'일때, 2가지 경우의 길에 대해서 방문체크를 해야한다. 3. 코드 import java.util.*; class Solution { static int D[][] = { { 1, 0 }, { 0, 1 }, { -1, 0 }, { 0, -1 } }; static int N=10; static public int solution(String dirs) { int answer = 0; char arr[] = dir..
프로그래머스 - JadenCase 문자열
https://programmers.co.kr/learn/courses/30/lessons/12951 코딩테스트 연습 - JadenCase 문자열 만들기 JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요. 제한 조건 programmers.co.kr 1. 유형 문자열 2. 시뮬레이션 모두 소문자로 변환 문자열을 탐색하면서, 공백 + 소문자인 경우 대문자로 전환 3. 코드 import java.util.*; import java.util.regex.*; class Solution { public String solution(String s) { Str..
프로그래머스 - 압축
https://programmers.co.kr/learn/courses/30/lessons/17684 코딩테스트 연습 - [3차] 압축 TOBEORNOTTOBEORTOBEORNOT [20, 15, 2, 5, 15, 18, 14, 15, 20, 27, 29, 31, 36, 30, 32, 34] programmers.co.kr 1. 유형 해시맵 2. 시뮬레이션 딕셔너리에 등록되지 않은 가장 긴 문자열 탐색 등록되지 않은 문자열은 딕셔너리에 등록 문자열 끝까지 위를 반복 3. 코드 import java.util.*; class Solution { static List ans = new ArrayList(); static Map map = new HashMap(); static int index =27; sta..
프로그래머스 - 이중우선순위큐
https://programmers.co.kr/learn/courses/30/lessons/42628# 코딩테스트 연습 - 이중우선순위큐 programmers.co.kr 1. 유형 우선순위큐 2. 시뮬레이션 우선순위큐에 [인덱스, 값] 형태로 집어 넣는다. 아래 처럼 내림, 오름 차순으로 우선순위큐를 선언 D가 나올때마다, 방문배열에 체크한다 따라서 max, min큐에서 방문 배열이 false인 것이 정답이다. 3. 코드 import java.util.*; class Solution { public int[] solution(String[] operations) { int[] answer = {0, 0}; PriorityQueue min = new PriorityQueue(new Comparator(){..
프로그래머스 - 보행자 천국
https://programmers.co.kr/learn/courses/30/lessons/1832 코딩테스트 연습 - 보행자 천국 3 3 [[0, 0, 0], [0, 0, 0], [0, 0, 0]] 6 3 6 [[0, 2, 0, 0, 0, 2], [0, 0, 2, 0, 1, 0], [1, 0, 0, 2, 2, 0]] 2 programmers.co.kr 1. 유형 DP 2. 시뮬레이션 로직 맵을 완전탐색 한다. 현재의 칸에서 상, 좌를 확인한다 이전 칸이 0 OR 2에 따라 분기한다. 위의 그림의 공식대로 Dp에 저장 위를 n-1,m-1 좌표까지 반복 3. 코드 class Solution { int MOD = 20170805; public int solution(int m, int n, int[][] c..
프로그래머스 - 단어변환
https://programmers.co.kr/learn/courses/30/lessons/43163 코딩테스트 연습 - 단어 변환 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 programmers.co.kr 1. 유형 DFS 2. 시뮬레이션 로직 완전탐색으로 1자리만 다른 단어가 있는지 탐색 DFS 3. 코드 class Solution { static int N, INF= Integer.MAX_VALUE; static boolean visited[]; static String[] Words; public int soluti..
프로그래머스 - 셔틀버스
https://programmers.co.kr/learn/courses/30/lessons/17678# 코딩테스트 연습 - [1차] 셔틀버스 10 60 45 ["23:59","23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59"] "18:00" programmers.co.kr 1. 유형 구현 2. 시뮬레이션 로직 timetable을 모두 "분"으로 전환 후, 오름차순 정렬 버스에 m명까지 태우기 만약 m명 미만이다. 현재 버스시간이 정답 m명이다. 마지막에 탄 사람의 시간-1이 정답 분 -> 시 3. 코드 import ja..
프로그래머스 - (Java) 가장 긴 팰린드롬
https://programmers.co.kr/learn/courses/30/lessons/12904 코딩테스트 연습 - 가장 긴 팰린드롬 앞뒤를 뒤집어도 똑같은 문자열을 팰린드롬(palindrome)이라고 합니다. 문자열 s가 주어질 때, s의 부분문자열(Substring)중 가장 긴 팰린드롬의 길이를 return 하는 solution 함수를 완성해 주세요. 예를들 programmers.co.kr 1. 유형 문자열 2. 시뮬레이션 로직 총 길이 설정 시작 위치를 설정 양 끝에서 중앙으로 이동하면서 문자가 같은지를 판단 3. 코드 class Solution{ public int solution(String s) { int answer = 1; success:for(int len=s.length(); le..
프로그래머스 - (Java)여행경로
https://programmers.co.kr/learn/courses/30/lessons/43164 코딩테스트 연습 - 여행경로 [["ICN", "SFO"], ["ICN", "ATL"], ["SFO", "ATL"], ["ATL", "ICN"], ["ATL","SFO"]] ["ICN", "ATL", "ICN", "SFO", "ATL", "SFO"] programmers.co.kr 1. 유형 DFS 2. 시뮬레이션 로직 Map 형태로 자료구조 사용 DFS사용하여 완전 탐색 3. 코드 풀이1 import java.util.*; class Solution { static int N; static List ret; static public String[] solution(String[][] tickets) { ..
프로그래머스 - (Java)자물쇠와 열쇠
https://programmers.co.kr/learn/courses/30/lessons/60059 코딩테스트 연습 - 자물쇠와 열쇠 [[0, 0, 0], [1, 0, 0], [0, 1, 1]] [[1, 1, 1], [1, 1, 0], [1, 0, 1]] true programmers.co.kr 1. 유형 구현 2. 시뮬레이션 위처럼 전체 맵을 만들고 key를 이동하면서 lock에 대입해보면서 판단한다. 로직 key가 평행이동할 전체 맵을 완전탐색한다 key를 90도 돌려준다 key와 lock이 맞는지 확인한다 3. 코드 class Solution { public boolean solution(int[][] key, int[][] lock) { boolean answer = false; int keyl..