728x90
반응형
2022.04.03
91번째 포스팅
입사 392일차.
코테 문제풀이 18주차 2번 문제
0. 문제
① 2019 카카오 개발자 겨울 인턴십 : 튜플
② 설명
문제설명 셀수있는 수량의 순서있는 열거 또는 어떤 순서를 따르는 요소들의 모음을 튜플(tuple)이라고 합니다. n개의 요소를 가진 튜플을 n-튜플(n-tuple)이라고 하며, 다음과 같이 표현할 수 있습니다.
특정 튜플을 표현하는 집합이 담긴 문자열 s가 매개변수로 주어질 때, s가 표현하는 튜플을 배열에 담아 return 하도록 solution 함수를 완성해주세요. [제한사항]
|
③ 링크
1. 접근방법
생각해낸 방법은 1가지
① 문제설명 그대로 풂
2. 풀이
① 접근방법 : ①
② 풀이
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
import java.util.*;
class Solution {
/*
* Date: 2022-04-03
* Time: 23:10
*/
public int[] solution(String s) {
int[] answer = makeTuple(s);
return answer;
}
/*
* 메소드명: 튜플만들기
* 1. 집합으로 튜플을 만들어 return
*/
public int[] makeTuple(String s) {
/*
* 배열만들기
* String으로 받은 문자열을 배열로 만들어준다
*/
String[] splitStr = s.split("},");
for (int i = 0; i < splitStr.length; i++) {
String row = splitStr[i];
row = row.replaceAll("\\{", "");
row = row.replaceAll("\\}", "");
splitStr[i] = row;
}
/*
* 정렬
* 1. 배열의 length를 오름차순으로 정렬
* 2. Comparator 메소드를 Overriding
*/
Arrays.sort(splitStr, new Comparator<String>() {
public int compare(String o1, String o2) {
return o1.length() - o2.length();
}
});
/*
* 튜플만들기
* 1. 오름차순으로 정렬된 원소들을 차례대로 list에 add
* 2. 중복이 되지 않도록 contains() 메소드를 사용
*/
List<Integer> list = new ArrayList<>();
for (String row : splitStr) {
String[] rowArr = row.split(",");
for (String val : rowArr) {
int element = Integer.parseInt(val);
if (!list.contains(element)) {
list.add(element);
}
}
}
int[] answer = new int[list.size()];
for (int i = 0; i < answer.length; i++) {
answer[i] = list.get(i);
}
return answer;
}
}
|
cs |
3. 결과
4. 주의사항
① 없음
728x90
반응형
'코딩테스트' 카테고리의 다른 글
[코테/JAVA] 브루트 포스 : 블랙잭 (0) | 2022.06.15 |
---|---|
[코테/JAVA] 연습문제: JadenCase 문자열 만들기 (0) | 2022.04.30 |
[코테/JAVA] 2019 KAKAO BLIND RECRUITMENT : 오픈채팅방 (0) | 2022.04.02 |
[코테/JAVA] 찾아라 프로그래밍 마에스터 : 게임 맵 최단거리 (0) | 2022.03.21 |
[코테/JAVA] 정렬 : 가장 큰 수 (0) | 2022.03.20 |
댓글