728x90
반응형
728x90
반응형
해당 조건을 해결하기 위해 2중 반복문과 슬라이싱을 적절하게 섞어서 사용하였다. package programmers; import java.util.Arrays; public class KNumber { public static void main(String[] args) { Solution12 s = new Solution12(); int[] array = {1, 5, 2, 6, 3, 7, 4}; int[][] commands = {{2, 5, 3}, {4, 4, 1}, {1, 7, 3}}; s.solution(array, commands); } } class Solution12 { public int[] solution(int[] array, int[][] commands) { // 예를 들어 arr..
주어진 boolean 배열을 이용해서 적절하게 + - 를 변경하여 합산한다. package programmers; public class SumPlusMinus { public static void main(String[] args) { Solution11 s = new Solution11(); int[] absolutes = {4,7,12}; boolean[] signs = {true, false ,true}; s.solution(absolutes, signs); } } class Solution11 { public int solution(int[] absolutes, boolean[] signs) { int sum = 0; for(int i = 0; i
주어진 조건을 반복문으로 해결한다. package programmers; public class Dot_Product { public static void main(String[] args) { Solution10 s = new Solution10(); int[] a = {1,2,3,4}; int[] b = {-3,-1,0,2}; s.solution(a, b); } } class Solution10 { public int solution(int[] a, int[] b) { int sum = 0; for(int i = 0; i
없는 숫자 더하기라고 해서 꼭 없는 숫자를 골라서 합계를 찾는 것이 아니었다. 주어진 숫자의 최대값은 고정값이므로 0-9까지의 합계를 구한 후 주어진 값의 합계의 차를 구하면 정답! package programmers; public class unknownNumberSum { public static void main(String[] args) { Solution9 s = new Solution9(); int[] numbers = {1,2,3,4,6,7,8,0}; //14 //int[] numbers = {5,8,4,0,6,7,9}; //6 s.solution(numbers); } } class Solution9 { public int solution(int[] numbers) { int sum = 0;..
오늘은 시작이 좋다. 다행히 문제가 조금 쉬운 감이 없지 않아 있는 듯 하다. 주어진 문자열 list를 만들고 그 문자열이 포함되어 있으면 replaceAll로 반복문을 돌려 숫자열로 맞춘다. 정답 코드 package programmers; public class Nums_Spelling { public static void main(String[] args) { Solution5 s1 = new Solution5(); String s = "one4seveneight"; //String s = "123"; s1.solution(s); //1478 //0zero //1one //2two //3three //4four //5five //6six //7seven //8eight //9nine } } class..
로또의 최고 순위와 최저 순위를 구하는 알고리즘. 겹치는 숫자가 이미 맞춰진 숫자이므로 겹치는 숫자의 개수가 최저 순위가 되고 겹치는 숫자와 0의 숫자를 더한 개수가 최고의 순위가 된다. 코드는 아래와 같다. package programmers; public class lottery { public static void main(String[] args) { Solution3 s = new Solution3(); int[] lottos = {44, 1, 0, 0, 31, 25}; int[] win_nums = {31, 10, 45, 1, 6, 19}; s.solution(lottos, win_nums); //[3, 5] - 최고 순위, 최저 순위 } } class Solution3 { public int..
첫 프로그래머스 풀이. 아래 문제를 통해 정규식을 다시 한번 공부할 수 있었다. 세상 유용한듯 public static void main(String[] args) { //1단계 new_id의 모든 대문자를 대응되는 소문자로 치환합니다. //2단계 new_id에서 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.)를 제외한 모든 문자를 제거합니다. //3단계 new_id에서 마침표(.)가 2번 이상 연속된 부분을 하나의 마침표(.)로 치환합니다. //4단계 new_id에서 마침표(.)가 처음이나 끝에 위치한다면 제거합니다. //5단계 new_id가 빈 문자열이라면, new_id에 "a"를 대입합니다. //6단계 new_id의 길이가 16자 이상이면, new_id의 첫 15개의 문자를 제외한 나머..