전체 글61 프로그래머스 - 문자열압축 프로그래머스 (코딩테스트연습) - 문자열 압축 해당 문제는 반복되는 문자를 압축하여 표현하는 문제로 몇개 단위로 압축할지는 정해져 있습니다. 반복되는 문자의 최대값은 입력 받은 문자열 길이의 1/2 이고 1개부터 그전까지 반복하는 경우를 구해 압축을 진행했습니다. 반복단위를 넘어서는 마지막 문자들은 그대로 출력하는 부분을 예외로 두고 압축 문자열을 만들어 가며 표현한 문자열 중 가장 짧은 것의 길이를 구했습니다. public int solution(String s) { int answer = s.length(); int sLength = s.length(); for(int repeatLength = 1; repeatLength 2022. 3. 30. 프로그래머스 - 크레인 인형뽑기 프로그래머스 (코딩테스트연습) - 크레인 인형뽑기 해당 문제는 스택에 뽑은 번호를 넣어두고, 번호를 뽑을 때 마다 해당 스택의 peek값과 비교해 같다면 pop을 하고 answer 값을 1씩 더해주었고, 같지 않다면 스택에 계속 쌓는 식으로 구현하였다. move 좌표의 높이를 알고 있다면 바로 이중 배열에서 가져갈 수 있을 거라 생각해 board 각 좌표의 높이를 구한 후에 스택 로직을 수행했었는데, public int solution(int[][] board, int[] moves) { int answer = 0; int N = board.length; int[] boardXHeight = new int[N]; Stack barket = new Stack(); for (int i = 0; i < N; .. 2022. 3. 28. 프로그래머스 - 키패드 누르기 프로그래머스(코딩테스트 연습) - 키패드 누르기 해당 문제를 처음 풀때에는 키패드의 인덱스를 저장한 맵을 미리 선언한 후 해당 패드의 인덱스를 가져와 패드 인덱스를 3으로 나눈 몫과 나머지를 통해 왼손으로 패드를 누를지 오른손으로 패드를 누를지 결정하는 방식으로 풀었습니다. 키패드의 인덱스는 0 부터 시작해 11까지로 정해두고 현재 왼손의 위치 오른손의 위치는 각각 눌러야 하는 키패드의 인덱스를 3으로 나눈 나머지에 따라 0이면 왼손, 1이면 왼손/오른손중 결정(더 가까운 위치는 몫과 나머지를 x,y 좌표라 생각하고 키패드의 몫과 나머지를 각 손 위치의 몫과 나머지와 각각의 차이를 더함)하는 방식으로 풀었습니다. public String solution(int[] numbers, String hand) .. 2022. 3. 25. 이전 1 ··· 5 6 7 8 9 10 11 ··· 21 다음