분류 전체보기 210

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

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

#배열과 int/String : 자료형 변환

(알고리즘 풀면서 계속 테스트해보고 추가/수정 중!!) 문자열은 형변환이 비교적 간단한데, int는 단순하지 않다. List배열에 int가 아닌 Integer 배열이 있고, split같이 String의 메소드를 사용하거나 나누어서 특정한 처리가 필요할 수도 있다. 대체로 int배열은 String/char등으로 변환하고 다시 int배열로 변환하는 방법을 사용한다. Stream을 사용하기 위해서는 Stream배열로 변환하고 기능을 사용해야 한다. 문자열String과 문자열배열String[]/char[] 문자열String을 문자열배열String[]/char[]로 변환 1) String to char[] char[] cArray = input.toCharArray(); 참고 : char[] cArr = Stri..

Language/JAVA 2022.01.18

#List와 배열 : 자료형 변환(캐스팅) + 컬렉션 순회하면서 특정 원소 삭제

자바에서 자료형 변환을 캐스팅이라고 한다. 기본형 또는 부모와 자식간의 관계인 경우 캐스팅을 활용할 수 있다. 그 외에는 String.valueOf와 같은 각 클래스의 메소드를 사용해야 한다. List에서 배열로 전환 List에 담겨있는 제네릭과 변환되는 배열의 클래스가 같아야 한다. List array = new ArrayList(); 1) for문을 사용 String[] arr = new String[array.size()]; int size = 0; for(String item : array) { arr[size++] = item; } List list = new ArrayList(); int[] num = new int[list.size()]; for (int i = 0; i < list.size..

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