배열 13

[프로그래머스] K번째수 #Arrays.copyOfRange

https://programmers.co.kr/learn/courses/30/lessons/42748?language=java 주어진 조건에 따라 배열에서 원하는 값을 찾아서, 배열로 출력하는 문제이다. int배열을 주어진 범위를 index로 잘라서 복사하는 메서드를 새로 알게 되었다. java.util.Arrays에 있는 메서드이다. 배열이기 때문에 from과 to가 배열의 범위를 벗어나면 에러가 발생한다. public static int[] copyOfRange(int[] original, int from, int to) { int newLength = to - from; if (newLength " + to)..

Language/JAVA 2022.07.01

[프로그래머스] 신규 아이디 추천

https://programmers.co.kr/learn/courses/30/lessons/72410 class Solution { public String solution(String new_id) { String answer = new_id //1. 소문자로 치환 .toLowerCase() //2. 알파벳 소문자, 숫자, -, _, . 제외하고 모든 문자 제거 .replaceAll("[^\\.\\-_0-9a-z]", "") //3. 마침표.이 2번 이상 연속된 부분 하나로 치환 .replaceAll("[.]+", "."); //4. 마침표가 처음이나 끝에 위치한다면 제거 if (answer.startsWith(".")) answer = answer.substring(1); if (answer.ends..

Language/JAVA 2022.01.29

[프로그래머스] 시저 암호

처음에 n이 커서 알파벳 범위를 여러 번 도는 경우를 생각하지 못해서 통과하지 못했다. n 대신 26으로 나눈 값 k를 더해줘서 알파벳 범위 안에서만 돌도록 조정해주었고, 대문자와 소문자로 경우를 나누어서 Z나 z는 추가로 -26을 해주었다. class Solution { public String solution(String s, int n) { String answer = ""; //char배열로 바꿈 char[] arr = s.toCharArray(); for (int i = 0; i < arr.length; i++) { //알파벳 안에서만 돌면 되므로 26으로 나누어서 나머지값만 더함 int k = n % 26; //대문자인데 더했을 때 'Z'보다 크거나, 소문자인데 더했을 때 'z'보다 크면 -2..

Language/JAVA 2022.01.27

[프로그래머스] 문자열 내림차순으로 배치하기

https://programmers.co.kr/learn/courses/30/lessons/12917 문자열을 char배열로 전환해서 정렬 후 다시 String으로 만들어주었다. import java.util.Arrays; class Solution { public String solution(String s) { String answer = ""; char[] arr = s.toCharArray(); Arrays.sort(arr); for (int i = arr.length-1; i >= 0; i--) { answer += arr[i]; } return answer; } } 마지막에 for문으로 돌려주었는데, StringBuilder를 사용할 수 있다. public class ReverseStr { p..

Language/JAVA 2022.01.27

[프로그래머스] 같은 숫자는 싫어

https://programmers.co.kr/learn/courses/30/lessons/12906 import java.util.*; public class Solution { public int[] solution(int []arr) { //add 사용, 답안 배열의 길이를 모르기 때문에 ArrayList사용 List num = new ArrayList(); num.add(arr[0]); //num 배열의 index 선언 int k = 0; for (int x : arr) { if(!num.get(k).equals(x)) { num.add(x); k++; } } // for (int i = 0; i < arr.length; i++) { // if(!num.get(k).equals(arr[i])) {..

Language/JAVA 2022.01.20

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

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