Language/JAVA 53

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

처음에 짰던 코드는 다음과 같다. 단어를 나눈다음에 띄어쓰기 기준으로 다시 합치기 위해 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

#ArrayList + List

ArrayList List 인터페이스를 상속받은 클래스로 크기가 가변적으로 변하는 선형리스트 일반적인 배열과 같은 순차리스트이며, 인덱스로 내부의 객체를 관리한다. 객체들이 추가되어 저장 용량(capacity)을 초과한다면 자동으로 부족한 크기 만큼 저장 용량이 늘어난다. → LinkedList와의 차이(https://devlog-wjdrbs96.tistory.com/64) import java.util.ArrayList; List선언 List list = new ArrayList(); List list = Arrays.asList(new String[]{"a","b","c"}); ArrayList 선언 ArrayList array = new ArrayList(); //타입 미설정 object로 선언 값..

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

[프로그래머스] 나누어 떨어지는 숫자 배열

일반적으로 배열은 크기가 고정되지만, ArrayList를 사용하면 array.add(a)를 사용하여 ArrayList에 추가할 수 있다. import java.util.ArrayList; import java.util.Collections; class Solution { public ArrayList solution(int[] arr, int divisor) { //ArrayList는 배열 크기가 고정되지 않음. ArrayList answer = new ArrayList(); for (int i = 0; i < arr.length; i++){ if (arr[i] % divisor == 0) { answer.add(arr[i]); } } //내림차순 정렬 : Collections.sort(array, Co..

Language/JAVA 2022.01.15