Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 프로그래머스
- 데이터베이스
- JWT
- 개인프로젝트
- Kafka
- 패스트캠퍼스
- emqx
- Spring Security
- 시큐리티
- 남궁성과 끝까지 간다
- EC2
- CentOS
- MYSQL
- 항해99
- 카프카
- 쇼트유알엘
- 생성자 주입
- 스프링의 정석
- 웹개발
- JavaScript
- AWS
- WEB SOCKET
- docker
- visualvm
- DB
- @jsonproperty
- 스웨거
- java
- Spring
- 스파르타코딩클럽
Archives
- Today
- Total
Nellie's Blog
[프로그래머스][코딩테스트 연습] 자연수 뒤집어 배열로 만들기 본문
728x90
문제 설명
자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다.
제한 조건- n은 10,000,000,000이하인 자연수입니다.
12345 | [5,4,3,2,1] |
내 풀이
import java.util.*;
public class Solution {
public static int[] solution(long n) {
String[] arr = String.valueOf(n).split("");
int[] answer = new int[arr.length];
for(int i =0; i< arr.length; i++) {
answer[i] = Integer.parseInt(arr[i]);
}
Arrays.sort(answer, Collections.reverseOrder());
int temp = 0;
for(int i = 0; i<answer.length-1; i++) { // for문 한번 쓰면 안됨!!!!!!!!!!!!!!!
if(answer[i] < answer[i+1]) {
temp = answer[i];
answer[i] = answer[i+1];
answer[i+1] = temp;
continue;
}
}
return answer;
}
//23451
for문을 1번 써서 제대로 돌아가지가 않았던것!!!!!
내풀이 정답 수정
import java.util.*;
public class Solution {
public static int[] solution(long n) {
String[] arr = String.valueOf(n).split("");
int[] answer = new int[arr.length];
for(int i =0; i< arr.length; i++) {
answer[i] = Integer.parseInt(arr[i]);
}
int temp = 0;
for(int i = 0; i<answer.length-1; i++) {
for(int j = i + 1; j < answer.length; j++) {
if(answer[i] < answer[j]) {
temp = answer[i];
answer[i] = answer[j];
answer[j] = temp;
}
}
}
return answer;
}
public static void main(String[] args) {
int n = 12345;
System.out.println(Arrays.toString(solution(n)));
}
}
for문을 이렇게 2번 쓰면 제대로 [5,4,3,2,1] 로 출력이 된다!!!!!
정답 풀이1
class Solution {
public int[] solution(long n) {
String s = "" + n;
int[] answer = new int[s.length()];
for (int i = 0; i < s.length(); i++) {
answer[i] = s.charAt(s.length() - i - 1) - '0';
}
return answer;
}
}
charAt(i) 로 빼주는구나!!!
정답 풀이2
import java.util.*;
class Solution {
public int[] solution(long n) {
List<Integer> list = new ArrayList<>();
while(n != 0) {
list.add((int)(n % 10));
n /= 10;
}
int[] answer = new int[list.size()];
for (int i = 0; i < list.size(); i++) {
answer[i] = list.get(i);
}
return answer;
}
}
10으로 나눠줘서 나머지값으로 계산하는 방법,,,!!!!
'Back-end > Algorithm' 카테고리의 다른 글
[프로그래머스][코딩테스트 연습] 콜라츠 추측 (0) | 2022.11.22 |
---|---|
[프로그래머스][코딩테스트 연습] 제일 작은 수 제거하기 (0) | 2022.11.22 |
[프로그래머스][코딩테스트 연습] 이상한 문자 만들기 (0) | 2022.11.21 |
[프로그래머스][코딩테스트 연습] 문자열 내 p와 y의 개수 (0) | 2022.11.19 |
[프로그래머스][코딩테스트 연습] 행렬의 덧셈 (0) | 2022.11.19 |