반응형 분류 전체보기61 프로그래머스 3진법 뒤집기 자바 java 풀이 10진법 수를 3진법으로 바꾸고 3진법 수를 반전시키고 반전시킨 3진법 수를 10진법으로 바꾸는 것으로 순서대로 해결합니다 while문을 통해서 3으로 계속 나눠서 3진법 문자열을 만들어 줍니다 while (n != 0) { base3 = (n % 3) + base3; n /= 3; } 3진법 반전하는 것은 StringBuilder 클래스와 reverse() 함수를 이용해서 문자열을 반전시켜서 해결합니다 StringBuilder sb = new StringBuilder(); base3 = sb.append(base3).reverse().toString(); 반전된 3진법을 다시 10진법으로 바꾸는 건 Integer.parseInt() 함수를 이용해서 해결합니다 answer = Integer.pars.. 2021. 4. 26. 프로그래머스 두 개 뽑아서 더하기 자바 java 풀이 정수 배열에 서로 다른 인덱스의 값 두 개끼리 더해서 만들 수 있는 모든 경우의 수를 찾는 것입니다 2중 for문으로 완전탐색을 통해서 모든 경우의 수를 찾아냅니다 TreeSet 클래스를 이용해서 더한 값의 중복을 제거, 오름차순으로 정렬을 합니다 코드 import java.util.Iterator; import java.util.TreeSet; class Solution { public int[] solution(int[] numbers) { int[] answer; TreeSet arr = new TreeSet(); int idx = 0; for (int i = 0; i < numbers.length - 1; i++) { for (int j = i + 1; j < numbers.length; j.. 2021. 4. 26. 프로그래머스 음양 더하기 자바 java 풀이 signs의 해당 인덱스 값이 true 일 경우 absolutes 값이 +양수 false일 경우 absolutes 값이 -음수로 총합을 더하면 된다 예를 들어 테스트 케이스 값인 [4,7,12] [true, false, true]이라면 +4, -7, +12가 됨으로 총합은 9가 된다 for문과 if문을 이용하여 해결을 할 수 있다 코드 class Solution { public int solution(int[] absolutes, boolean[] signs) { int answer = 0; for (int i = 0; i < signs.length; i++) { if (signs[i]) { answer += absolutes[i]; } else { answer -= absolutes[i]; } }.. 2021. 4. 23. 프로그래머스 크레인 인형뽑기 게임 자바 java 풀이 테스트 케이스 board 배열을 시각화하면 이렇게 구성이 된다 테스트 케이스의 moves 배열 순서로 인형을 뽑는 것을 시각화해보았다 크게 3가지 기능을 만들어야 한다 1. 인형을 뽑는(찾는) 기능 2. 바구니에 인형을 넣는 기능 3. 바구니에 연속되어 쌓인 인형을 지우고 계산하는 기능 1. 인형을 뽑는(찾는) 기능 for문으로 배열에 board[?][moves] ?의 값을 탐색하며 배열의 값 중에 0이 아닌 먼저 나오는 값을 뽑는다 2. 바구니에 인형을 넣는 기능 먼저 바구니는 stack 클래스를 이용해서 간단하게 구현하고 push를 통해 해당 값을 넣어주고 해당 배열 값에 0을 입력하고 break를 통해 다음 for문으로 넘어간다 3. 바구니에 연속되어 쌓인 인형을 지우고 계산하는 기능 뽑은 인.. 2021. 4. 23. 프로그래머스 신규 아이디 추천 자바 java 풀이 아이디의 규칙을 참고해서 7단계의 순차적인 처리 과정을 순서대로 구현을 하면 해결하기 쉽다 규칙 아이디의 길이는 3자 이상 15자 이하여야 합니다. 아이디는 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.) 문자만 사용할 수 있습니다. 단, 마침표(.)는 처음과 끝에 사용할 수 없으며 또한 연속으로 사용할 수 없습니다. 1단계 모든 대문자를 대응되는 소문자로 치환합니다. 문자열을 소문자로 바꾸는 함수인 totoLowerCase()를 이용해서 처리를 합니다 new_id = new_id.toLowerCase(); 2단계 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.)를 제외한 모든 문자를 제거(치환)합니다. 문자열을 정규식을 치환하는 함수 replaceAll()를 이용해서 문자를.. 2021. 4. 23. 백준 18870번 좌표 압축 자바 java 문제 풀이 문제에서 압축이란? 입력받은 좌표 값을 오름차순으로 정렬했을 때의 순서를 표시하는 것 (중복 값은 제외) 예를 들어 2 4 -10 4 -9 입력받았다면 -10 -9 2 4 (4) 0, 1, 2, 3 (4는 중복됨으로 제외) 2 4 -10 4 -9 -> 2 3 0 3 1 배열로 값을 받은 다음 비교를 하기 위해서 깊은 배열 복사로 새로운 배열을 만들고 새로운 배열을 Arrays.sort() 함수로 오름차순 정렬을 합니다 순서와 중복된 값을 처리하기 위해서 hashmap을 이용해서 값을 넣고 기존에 배열에서 순서 값을 hashmap을 통해 값을 표시합니다 코드 import java.util.Arrays; import java.util.HashMap; import java.util.Map; impo.. 2021. 4. 20. 이전 1 2 3 4 5 6 7 8 ··· 11 다음 반응형