원래 int 배열 오름차순, 내림차순 정렬이 많이 나오는데 이번엔 문자열 정렬이다. String s = "hejilk"; char[] charArr = s.toCharArray(); Arrays.sort(charArr); //오름차순 정렬 //내림차순 정렬 //1 new StringBuilder(new String(charArr)).reverse().toString(); //2 String[] arr = s.split(""); Arrays.sort(arr); Collections.reverse(Arrays.asList(arr)); String.join("", arr); //3 String[] arr = s.split(""); Arrays.sort(arr, Collections.reverseOrder())..
알고리즘 자료구조 참고할 것 정리 Stack 순차적으로 데이터를 접근하면서, 이전 데이터와 신규 데이터가 같을 때 연산이 이루어지는 문제에서 사용 중복 허용 Stack stack = new Stack(); if(stack.empty()) { stack.push(1); stack.push(2); stack.push(3); } if(!stack.empty()){ if(stack.peek() == 3) { stack.pop(); } } if(stack.search(3) == -1) { System.out.println("3 is poped"); } Map 입력된 데이터들을 key와 value로 저장하고 싶을 때, 탐색이 O(1)이기 때문에(key로 바로 찾기 때문) 특정한 값을 바로 읽어와야 할 때 사용 중복..

문자열을 정수로 변환할 때 +나 - 부호가 있더라도 Integer.parseInt() 써주면 알아서 숫자로 변환해준다. 굳이 부호 조건을 검사할 필요가 없다. x만큼 간격이 있는 n개의 숫자 class Solution { public long[] solution(long x, int n) { long[] answer = new long[n]; for(int i=0; i < n; i++){ answer[i] = x + x * (long)i; } return answer; } } 나는 이렇게 했는데, 처음에 테스트 케이스 13,14에서 오류가 났다. 그 이유는 제한 조건을 유심히 보지 않아서이다.. x는 최소 -10000000, 최대 10000000이고, n은 최대 1000이다. 만약 10000000 * 1..

int, long to String Integer.toString(num); Long.toString(num); string to string array String[] array = str.split(""); string to int int num = Integer.paserInt(str); int array reverse sort int arr; Integer[] integerArr = Arrays.stream(arr).boxed().toArray(Integer[]::new); Arrays.sort(integerArr, Comparator.reverseOrder()); integer array to string (except comma ...) String strArray = Arrays.toStri..

22. 팰린드롬 문제 앞뒤를 뒤집어도 똑같은 문자열을 팰린드롬(palindrome)이라고 합니다. 예를 들어, "aba"는 팰린드롬이며 "abccca"는 팰린드롬이 아닙니다. 어떤 문자열의 부분 문자열 중 팰린드롬인 문자열이 여럿일 수 있습니다. 이 중 k번째로 큰 팰린드롬을 알고 싶습니다. k번째로 큰 팰린드롬이란, 모든 팰린드롬을 사전 순으로 나열했을 때 k번째에 위치하는 팰린드롬을 뜻합니다. 이를 위해 다음과 같이 프로그램 구조를 세웠습니다. 1. 팰린드롬 문자열을 저장할 배열 palindromes를 선언합니다. 2. 주어진 문자열의 모든 부분 문자열을 찾아 다음을 수행합니다. 2-1. 부분 문자열이 팰린드롬 문자열인지 확인하고, 팰린드롬 문자열이라면 palindromes에 같은 문자열이 이미 들어..

16. 로봇을 움직여주세요 로봇이 아래 그림과 같이 2차원 평면의 원점 (0, 0)에 서있습니다. 이 로봇은 x축 방향, 혹은 y축 방향으로만 움직일 수 있으며, 알파벳으로 명령을 내릴 수 있습니다. 명령을 내릴 때 사용하는 알파벳은 'L', 'R', 'U', 'D'의 4가지이며, 'L'은 x축 방향으로 -1만큼, 'R'은 x축 방향으로 +1만큼, 'U'는 y축 방향으로 +1만큼, 'D'는 y축 방향으로 -1 만큼 이동하라는 의미입니다. 로봇에게 내린 명령이 순서대로 들어있는 문자열 commands가 매개변수로 주어질 때, 주어진 명령을 모두 수행한 후의 로봇 위치를 return 하도록 solution 함수를 완성해주세요. import java.util.*; class Main{ public int[] ..

8. 누가 당선 되나요 1번부터 N번까지 후보에 대해서 투표를 진행했습니다. 예를 들어 투표 결과가 [1, 5, 4, 3, 2, 5, 2, 5, 5, 4]라면 순서대로 [1번, 5번, 4번, 3번, 2번, 5번, 2번, 5번, 5번, 4번] 후보에 투표했음을 나타냅니다. 이때, 가장 많은 표를 받은 후보의 번호를 구하려고 합니다. 주어진 solution 메소드는 후보의 수 N과 투표를 진행한 결과가 담긴 배열 votes가 매개변수로 주어졌을 때, 가장 많은 표를 받은 후보의 번호를 return 하는 메소드입니다. 그러나, 코드 일부분이 잘못되어있기 때문에, 몇몇 입력에 대해서는 올바르게 동작하지 않습니다. 주어진 코드에서 _**한 줄**_만 변경해서 모든 입력에 대해 올바르게 동작하도록 수정하세요. im..

1. 음식전문점 운영 배달음식 전문점 운영을 위해 다음과 같이 DeliveryStore 인터페이스와 PizzaStore, Food 클래스를 작성했습니다. * DeliveryStore : * DeliveryStore는 배달 음식점의 인터페이스입니다. * 배달 음식점은 set_order_list와 get_total_price 메소드를 구현해야 합니다. * set_order_list 메소드는 주문 메뉴의 리스트를 매개변수로 받아 저장합니다. * get_total_price 메소드는 주문받은 음식 가격의 총합을 return 합니다. * Food : * Food는 음식을 나타내는 클래스입니다. * 음식은 이름(name)과 가격(price)으로 구성되어있습니다. * PizzaStore : * PizzaStore는 ..
보호되어 있는 글입니다.
0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 수는 6210입니다. 0 또는 양의 정수가 담긴 배열 numbers가 매개변수로 주어질 때, 순서를 재배치하여 만들 수 있는 가장 큰 수를 문자열로 바꾸어 return 하도록 solution 함수를 작성해주세요. Arrays.sort + compareTo //1. 다른 사람 풀이 public String solution_6_1(int[] numbers){ String answer =""; String[] res = new String[numbers.length]..