본문 바로가기

알고리즘30

[JAVA] 프로그래머스 - 키패드 누르기 풀이> 키패드를 2차원 배열로 구성한다 1 2 3 [0,0] [0,1] [0,2] 4 5 6 [1,0] [1,1] [1,2] 7 8 9 [2,0] [2,1] [2,2] * 0 # [3,0] [3,1] [3,2] 배열 구성을... 보이는대로 거꾸로 적용하였는데 손가락의 위치와의 키패드의 거리를 구하기 위해 구현한 것이라 문제 없을 것 같다! ex) 1 => [3,0] / 2 => [3,1] / 3 => [3,2] 4 => [2,0] 1,4,7 은 왼손 3,6,9 는 오른손 누른것을 추가해주고, 2,5,8,0은 현재 왼손,오른손의 위치와 키패드와의 거리를 계산 거리 차이가 적은 손을 답에 추가하고 거리가 같다면 , 어느 손잡이인지 검사 후(문제에서 주어지는 hand) 추가. public class Progr.. 2021. 8. 23.
[JAVA] 프로그래머스 - 숫자 문자열과 영단어 첫번째 풀이 > 문자열 하나씩 검사해, 숫자가 아닌 알파벳이 나온다면 (아스키코드로 검사) switch문으로 어느 단어인지 확인 후, 정답 배열에 저장한다. *원래 서툴럿지만,,,,,, 너무 볼품없는 코드였다 ㅠ 답 제출후, 다른사람의 풀이를 보자마자 다시 직접 풀어보았다. 모범 풀이 > public class Programmers16 { public static void main(String[] args) { //테스트용 입력 정의 String[] number = { "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" }; for (int i = 0; i < number.length; i++) if (s.conta.. 2021. 8. 22.
[JAVA]프로그래머스 - 실패율 풀이 > 스테이지별 실패율을 계산하고 몇번째 스테이지의 실패율인지 Map으로 기록 실패율로 스테이지를 정렬하고 출력하기! Collection프레임워크를 int[]로 바꾸기 .stream().mapToInt(i->i).toArray(); 기억하기! import java.util.*; public class Programmers15 { public static void main(String[] args) { //테스트용 입력 정의 int N = 5; int[] stages = {2, 1, 2, 6, 2, 4, 3, 3}; //스테이지별 실패율 기록 배열 Double[] successRate = new Double[N]; //스테이지는 1부터 시작함으로 1~N //각 스테이지의 실패율을 계산에 배열에 입력 f.. 2021. 1. 2.
[JAVA]프로그래머스 - 문자열 내 마음대로 정렬하기 풀이> 아직 compare오버라이딩을 통해 특정 인덱스에 있는 단어로 비교 같은 알파벳이면 사전순으로 정렬 import java.util.Arrays; public class Programmers9 { public static void main(String[] args) { String[] answer = {"abce", "abcd", "cdx"}; int n = 2; Arrays.sort(strings, (o1, o2) -> { if (o1.charAt(n) == o2.charAt(n)) return o1.compareTo(o2); else return o1.charAt(n) - o2.charAt(n); }); // return strings; } } 2020. 12. 6.
[JAVA]프로그래머스 - 문자열 내 p와 y의 개수 매우 쉬운 문제! 인데 포스팅 한 이유는.... 내가 푼 것 처럼 구구절절 하지않고 한 줄로 매우 간단히 표현할 수 있는 문제였다 새로운 풀이방법을 기억하기 위해서 풀이 > 문자열을 char배열로 만들어 배열의 요소에 p와 y가 있으면 각 갯수를 세려고 선언한 변수에 카운트 카운트 결과를 리턴 class Solution { boolean solution(String s) { int sumP = 0; int sumY = 0; char[] chars = s.toCharArray(); for (char aChar : chars) { if (aChar == 'p' || aChar == 'P') sumP++; else if (aChar == 'y' || aChar == 'Y') sumY++; } // if (su.. 2020. 12. 5.
[JAVA]프로그래머스 - 크레인 인형뽑기 게임 풀이 > 주어지는 보드판에 0이 아닌 맨 위 블럭을 가져와야 되기 때문에 보드판 세로 한줄씩을 Stack으로 구현 했다(표현이 쉽도록 ArrayList로 구현) 세로줄 스택에서 맨위 요소를 꺼내 뽑은 인형이 저장되어있는 result스택에 맨 위 요소와 같은지 확인 후 삭제(answer+=2) 하거나 인형을 저장했다 import java.util.ArrayList; import java.util.Stack; public class ProgrammersKakaoCrane { public int solution(int[][] board, int[] moves) { int answer = 0; ArrayList stackList = new ArrayList(); Stack result = new Stack();.. 2020. 12. 2.