코딩테스트 44

[프로그래머스] 정수 내림차순으로 배치하기

https://programmers.co.kr/learn/courses/30/lessons/12933?language=java import java.util.Arrays; import java.util.Collections; //import java.util.List; class Solution { public long solution(long n) { //String[]로 split이용하여 한자리 씩 분리 String[] arr = String.valueOf(n).split(""); //내림차순을 위해 List배열로 변형 //List arr = Arrays.asList(String.valueOf(n).split("")); //내림차순 정렬 Arrays.sort(arr, Collections.revers..

Language/JAVA 2022.01.18

[프로그래머스] 자연수 뒤집어 배열로 만들기

https://programmers.co.kr/learn/courses/30/lessons/12932 int를 int배열로 만드는 방법은 https://paran21.tistory.com/36을 참고했다!(바로 연달아 풀어서 바로 적용할 수 있었다.) 이전에 문제를 풀면서, for문 사용할 때 조건에 따라 count와 같이 별도로 인덱스를 설정하는 것을 참고했는데, 응용해서 풀었다. import java.util.stream.Stream; class Solution { public int[] solution(long n) { //split을 사용하기 위해 string[]으로 변환 String[] arr = String.valueOf(n).split(""); //Stream을 이용하여 int[]로 변환 i..

Language/JAVA 2022.01.18

[프로그래머스] 자릿수 더하기 + Stream참고자료

이 문제의 포인트는 int를 int배열로 만드는 방법이다. 1) for문을 이용하는 방식 : 10의 배수를 이용. 자리수를 구한 후 for문을 이용(1자리 수부터 거꾸로 계산) 2) Stream을 이용하는 방식 split을 이용하기 위해 String으로 변환 mapToInt를 이용하여 int[]로 변환하기 위해 Stream으로 변환 import java.util.*; import java.util.stream.Stream; public class Solution { public int solution(int n) { int answer = 0; //Arrays.asList()는 primitive타입을 Wrapper클래스로(int를 Integer) X, 사용할 수 없음. //int를 string으로 변환 ..

Language/JAVA 2022.01.18

[프로그래머스] 이상한 문자 만들기

처음에 짰던 코드는 다음과 같다. 단어를 나눈다음에 띄어쓰기 기준으로 다시 합치기 위해 1) 단어를 배열로 나누고 2) 단어를 char[]로 나누어서 대문자로 변경을 하였다. 그런데 문제에서 "하나 이상의 공백문자"가 있어 해당 코드로는 테스트를 통과할 수 없다. import java.util.regex.Pattern; class Solution { public String solution(String s) { String answer = ""; //단어 수 구하기 int count = 1; for (int i = 0; i < s.length(); i++) { if (s.charAt(i) == ' ') { count++; } } //띄어쓰기 기준으로 잘라 배열로 만들기 String[] arr = new ..

Language/JAVA 2022.01.17

[프로그래머스] 완주하지 못한 선수

https://programmers.co.kr/learn/courses/30/lessons/42576 진짜 고민 많이한 문제인데, 결국 풀지는 못했다. 처음에는 Stream의 anyMatch로 했는데, 동명이인 문제를 해결하지 못했다. 그다음에 찾은게 List로 변환하여 removeAll하는 방식이었는데, 이역시 동명이인 문제를 해결하지 못했고, 변환을 꼭 해야한다는 문제가 있었다. 그 다음으로 생각한게 오름차순으로 동일하게 배열해주는 방식이었다. import java.util.Arrays; class Solution { public String solution(String[] participant, String[] completion) { String answer = ""; Arrays.sort(par..

Language/JAVA 2022.01.17

[프로그래머스] 수박수박수박수박수박수?

자리수마다 글자를 하나씩 넣고, 마지막에 배열을 String으로 바꾸는 방식을 사용했다. import java.util.ArrayList; class Solution { public String solution(int n) { String answer = ""; ArrayList arr = new ArrayList(); for (int i = 0; i < n; i++){ //index고려하면 짝수자리가 "수" if(i % 2 == 0) { arr.add("수"); } else { arr.add("박"); } } answer = String.join("",arr); return answer; } } 다른 문제 풀이를 보니까, 굳이 배열로 만들어서 합치지 않고 바로 +를 이용해서 붙일 수도 있다. impor..

Language/JAVA 2022.01.17

[프로그래머스] 서울에서 김서방 찾기

처음에 사용했던 방법은 배열에서 위치를 index로 반환하는 메소드를 이용하는 것이다. indexOf는 List로 배열을 변환하여 사용해야 한다. import java.util.Arrays; class Solution { public String solution(String[] seoul) { String answer = ""; //indexOf를 사용하기 위해 배열을 List로 변환해야 함 answer = "김서방은 " + Arrays.asList(seoul).indexOf("Kim") + "에 있다"; return answer; } } 다른 방법으로는 for문을 이용해서 배열의 위치별로 값을 비교하는 방법이 있다. + 처리 시간은 대체로 위에 배열로 푼 방법이 덜 걸린다. Loop가 생각보다 시간을 ..

Language/JAVA 2022.01.17

[프로그래머스] 문자열 다루기 기본

class Solution { public boolean solution(String s) { boolean answer = true; if (s.length() != 4 && s.length() != 6) answer = false; for (int i = 0; i '9') { answer = false; } } return answer; } } 임의의 배열을 설정하고, anyMatch를 사용해서 풀려고 했는데 실패했다. 문자열의 경우 char를 많이 이용하여 비교하는 것 같아서, 다른 풀이를 참고하여 작성한 코드이다. char :: https://paran21.tistory.com/30 ++ 정..

Language/JAVA 2022.01.17

[프로그래머스] 문자열 내 p와 y의 개수

import java.util.Locale; class Solution { boolean solution(String s) { boolean answer = true; //혹은 s.toUpperCase()를 사용해서 모두 대문자로 바꿔준다 s = s.toLowerCase(); int p_count = 0; int y_count = 0; for (int i = 0; i < s.length(); i++){ //charAt(i)는 i에 위치한 값을 char로 반환한다. if(s.charAt(i) == 'p') { p_count++; } if(s.charAt(i) == 'y') { y_count++; } } answer = (p_count == y_count) ? true : false; return answe..

Language/JAVA 2022.01.15