일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 스프링부트
- 어찌저찌해냄
- 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 2장
- 트랜지스터
- 스프링 부트와 AWS로 혼자 구현하는 웹 서비스
- 스프링부트와 AWS로 혼자 구현하는 웹서비스
- Flexbox
- 개발자기술면접
- jpa
- 내가해냄
- CS
- 자바스크립트
- AWS EC2 구현
- 운영체제
- 스프링부트 테스트코드
- 테스트코드
- 그래도일단
- 오늘도
- 기술면접
- 스프링부트와 AWS로 혼자 구현하는 웹 서비스
- Today
- Total
개발 공부
프로그래머스 정수 내림차순으로 배치하기 Java 본문
https://school.programmers.co.kr/learn/courses/30/lessons/12933?language=java
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
내가 생각한 해결 순서
1. 입력 받은 값 n을 각 자릿수로 쪼갠 후 그것들로 배열 만들기
2. 서로의 값 비교하여 내림차순으로 정렬하기
3. 다시 합쳐서 리턴하기
1의 방법으로 떠오른 것은
(1) n을 문자열로 변환 후 char형 배열로 만들기 + 비교를 위해 다시 정수형으로 바꾸기
(2) 정수형 유지 위해 10의 제곱을 이용하여 각 자릿수 구해서 int형 배열로 만들기
였고 나는 (1)의 방법으로 풀었다.
지난 문제에서
정수형 타입 + "" 했을 때 StringBuffer 형태로 자바 내부에 저장된다는 걸 써먹어 보고 싶었기 때문이다.
class Solution {
public long solution(long n) {
char[] chArr = (n + "").toCharArray();
int[] arr = new int[chArr.length];
int temp = 0;
String answer = "";
for(int i = 0; i < chArr.length; i++){
arr[i] = chArr[i] - '0';
}
for(int i = 0; i < arr.length; i++){
for(int j = 0; j < arr.length - 1 - i; j++){
if(arr[j] < arr[j + 1]){
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
for(int num : arr){
answer += num + "";
}
return Long.parseLong(answer);
}
}
➡️ 정수형 + ""로 Stringbuffer
➡️ String값을 char형 배열로 바꾸는 함수 : str.toCharArray()
➡️ char를 int형으로 바꾸는 방법으로 - '0'을 썼다.
int num = ch1 - '0';
아스키코드로 '0'는 48라는 값을 가진다.
예를 들어 '1'라는 char형의 값이 있을 때 '1' - '0'을 한다면 49 - 48이 되어 정수형으로는 1이라는 결과값을 내게 된다.
➡️ String을 정수로 바꿀 때 : Integer.parseInt(n), Long.parseLong(n)
🥲배열 이중 포문으로 정렬하는 거에서 매번 막혔는데 오늘도 아니나 다를까 막혀서 애먹었음
근데 정처기 실기 준비하면서 버블정렬 식 많이 봐서 전보단 익숙해진 느낌이었다
🥲for문을 너무 많이 쓴 것 같다
➕다른 사람들이 푼 풀이 중 반응이 좋은 풀이는 Stream을 사용하여 풀이를 했었다.
효율성에 대한 의문 제기 댓글도 있었지만 아직 람다와 스트림이 익숙하지 않은 나로서는 멋있다고밖에 생각 할 수 없었음
아는 것이 많아질수록 내가 쓸 수 있는 풀이의 스펙트럼이 넓어질 테니 내일은 스트림과 람다에 대해서 파보아야겠다!!!
'코딩 테스트' 카테고리의 다른 글
프로그래머스 정수 제곱근 판별 Java (0) | 2022.07.29 |
---|---|
프로그래머스 제일 작은 수 제거하기 Java (0) | 2022.07.28 |
프로그래머스 자연수 뒤집어 배열로 만들기 Java (0) | 2022.06.19 |
프로그래머스 x만큼 간격이 있는 n개의 숫자 Java (0) | 2022.06.17 |
프로그래머스 직사각형 별찍기 Java (0) | 2022.06.13 |