본문 바로가기

CodingTest/Programmers81

[프로그래머스] Lv.0 문자열 정렬하기 (2)* import java.util.*; class Solution { public String solution(String my_string) { char[] array = my_string.toLowerCase().toCharArray(); Arrays.sort(array); String answer = String.valueOf(array); return answer; } } 매개변수로 받은 문자열을 먼저 toLowerCase()를 이용해 전부 소문자로 만들고 sort()메서드를 이용하기 위해 toCharArray()를 이용해서 char배열로 만들어줬다. 사실 처음에 char배열은 sort()메서드를 사용 못 하는줄 알아서 int배열에 넣고 정렬한 다음 다시 문자배열로 변환하려고 했는데 sort()메서드.. 2022. 11. 29.
[프로그래머스] Lv.0 최댓값 만들기 (2) import java.util.Arrays; class Solution { public int solution(int[] numbers) { int answer = 0; Arrays.sort(numbers); if(numbers[0]*numbers[1] > numbers[numbers.length-1]*numbers[numbers.length-2]) answer = numbers[0]*numbers[1]; else answer = numbers[numbers.length-1]*numbers[numbers.length-2]; return answer; } } 이렇게 풀어야 [1,2,-3,4,-5] 일 때 -3*-5 = 15를 반환할 수 있다. 처음에 public static void main(String[.. 2022. 11. 29.
[프로그래머스] Lv.0 피자 나눠 먹기 (2) class Solution { public int solution(int n) { int answer = 1; while(true){ if((6*answer)%n==0){ break; }else answer++; } return answer; } } 문제에서 피자 한판은 6조각 n명이 피자를 남기지 않고 모두 같은 조각을 먹어야 한다고 했다. 처음에는 약수로 푸는 문제로 접근 했다가 그냥 6조각에 1씩 증가시키며 곱하면서 n으로 나눈 것 중 처음 나누어 떨어지면 최소한 필요한 판으로 풀이했다. 2022. 11. 29.
[프로그래머스] Lv.0 외계행성의 나이 class Solution { public String solution(int age) { StringBuilder sb = new StringBuilder(); // 'a' -> 97 while(age>0){ sb.append((char)(97 + age % 10)); age/=10; } return String.valueOf(sb.reverse()); } } 소문자 'a'의 정수 아스키코드가 97인 것을 이용해서 문제를 풀었다. age의 뒤에서부터 %10해서 나온 나머지 만큼 97에 더해주면 더해준 만큼의 알파벳이 나온다. ex) 97 + 3 = 'c' 그 다음 age를 age/10으로 나눈 몫으로 값을 초기화 하고 위의 방법으로 age가 0이 될 때까지 반복한다. 뒤에서부터 문자를 붙였기 때문에 마.. 2022. 11. 28.
[프로그래머스] Lv.0 인덱스 바꾸기 class Solution { public String solution(String my_string, int num1, int num2) { char[] listCh = my_string.toCharArray(); char tmp = my_string.charAt(num1); listCh[num1] = listCh[num2]; listCh[num2] = tmp; return String.valueOf(listCh); } } 문자배열을 이용해서 해당 인덱스의 값 교환 했다. char[]배열을 문자열로 만드는 String.valueOf() 잊지말자. 2022. 11. 28.
[프로그래머스] Lv.0 배열 회전시키기 class Solution { public int[] solution(int[] numbers, String direction) { int tmp = 0; if(direction.equals("right")){ tmp = numbers[numbers.length-1]; for(int i=numbers.length-2; i>=0; i--){ numbers[i+1] = numbers[i]; } numbers[0] = tmp; }else{ tmp = numbers[0]; for(int i=0; i [ 4, 1, 2 ] 가 되야하지만 앞에서 부터 옮기면 [ 1, 2, 4] > [ 1, 1, 4 ] > [ 1, 1, 1 ] > [ 4, 1, 1 ] 이 된다. 1번째 인덱스를 2번째 인덱스에 넣을 때 이미 변경된 .. 2022. 11. 28.
[프로그래머스] Lv.0 암호 해독 class Solution { public String solution(String cipher, int code) { String answer = ""; for(int i=1; i 2022. 11. 28.
[프로그래머스] Lv.0 주사위의 개수 class Solution { public int solution(int[] box, int n) { int answer = (box[0]/n)*(box[1]/n)*(box[2]/n); return answer; } } 직육면체 안에 최대한 많은 정육면체의 주사위를 넣어야하는 문제다. 처음부터 직육면체 부피에서 주사위 부피를 나누려고하면 해당 문제를 잘못 접근한 것이다. 주사위는 모든 변의 길이가 같은 정육면체의 모양이다. 이것을 각각이 다른 길이의 직육면체에 넣어야하기 때문에 직육면체 각각의 변(가로,세로,높이)를 주사위 한 변의 길이만큼으로 나눠주고 나눈 값들을 곱해야 정육면체의 주사위가 들어갈 수 있는 최대의 갯수가 나온다. 2022. 11. 28.
[프로그래머스] Lv.0 약수 구하기 import java.util.ArrayList; import java.util.List; class Solution { public int[] solution(int n) { List list = new ArrayList(); for(int i=1; ii).toArray(); } } 1부터 n까지 약수를 구하는 문제이므로 처음 길이를 몰라도 되는 list에 값을 담아보았다. 1부터 n까지 나눈 나머지가 0이면 약수이므로 add()메서드로 list에 값을 담고 마지막에 int형 배열로 변환해주고 마무리 했다. 2022. 11. 28.
728x90
반응형