[Programmers/코딩테스트 입문] 아이스 아메리카노, 배열뒤집기 Java (StringBuffer, charAt)

2022. 11. 28. 15:34IT/Programmers

728x90
반응형

아이스 아메리카노 (Java)

class Solution {
    public int[] solution(int money) {
        int[] answer = new int[2];
        
        answer[0] = (int)(money/5500);
        answer[1] = (int)(money%5500);
        
        return answer;
    }
}

제출하고 생각해보니 5500원을 따로 변수에 지정하는 게 맞는 것 같다.

뭔가 더 제대로 된 방법이 있을 것 같은데, 단순히 통과만을 위한 코드라서 부끄러울 따름이다.

 

배열 뒤집기 (Java 가 아니라 C였네)

#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>

// num_list_len은 배열 num_list의 길이입니다.
int* solution(int num_list[], size_t num_list_len) {
    // return 값은 malloc 등 동적 할당을 사용해주세요. 할당 길이는 상황에 맞게 변경해주세요.
    int* answer = (int*)malloc(sizeof(int) * num_list_len);
    
    for (int i = 0; i < num_list_len; i++) {
        answer[i] = num_list[num_list_len-(1+i)];
    }
    return answer;
}

다른 사람 풀이도 봤는데 딱히 더 좋아보이지 않아서 이건 그대로.

#malloc

 

문자열 뒤집기 (Java) 이건 좀 어려웠더.

class Solution {
    public String solution(String my_string) {
        String answer = "";
        
        StringBuffer str = new StringBuffer(my_string);
        answer = str.reverse().toString();
        return answer;
    }
}

my_string.length() 를 사용 못한다고 해서 고민하다가, java에는 reverse() 함수가 있다는 걸 알고 사용해보기로 했다.

먼저 String을 buffer로 옮겨담고 (new StringBuffer) 해당 stringbuffer를 reverse()하고 toString()을 이용해 string 형태로 복귀시킨 듯 하다. 나도 잘 이해가 안가지만 앞으로 써먹어야겠다고 생각했다. ㅎ

#자바문자열뒤집기 #reverse함수 #StringBuffer

 

내가 원했던 방식은

class Solution {
    public String solution(String my_string) {
        String answer = "";

        for(int i = my_string.length() - 1 ; i >= 0; i--){
            answer += my_string.charAt(i);
        }

        return answer;
    }
}

이거였는데, charAt() 함수를 몰라서 실패했다.

#charAt함수 String data(문자열)에서 특정 문자(인덱스에 해당하는)를 char type으로 반환하는 함수

728x90
반응형