자바 33

#배열과 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

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

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

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

처음에 사용했던 방법은 배열에서 위치를 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