반응형
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
- IOS
- 재귀
- 비동기 처리
- 프리즈드
- 에러
- 초기화
- 플러터
- 프로그래머스
- Kotlin
- 앱아이콘 변경
- 자바
- Android
- 코틀린
- 플러터 동작
- dfs
- 알고리즘
- Singleton
- 싱글톤
- Widget Tree
- flutter
- 거리알고리즘
- 자료구조
- dart
- Lazy
- Java
- 완전탐색
- element tree
- Render object tree
- linebreak
- zwj
Archives
- Today
- Total
모바일 개발하는 자바리안의 메모장
자바(JAVA) - 튜플(Programmers : 64065) 본문
반응형
https://programmers.co.kr/learn/courses/30/lessons/64065
2레벨 치고는 어렵지 않았던 문제,
늘 그랬듯이 문제를 이해하는데에 조금 어려움이 있었으나, 풀이 과정을 보면서 쉽게 요하는 부분을 파악할 수 있었다.
코드는 크게 2스탭으로 나뉘는데,
1. 투플 원소를 만들어 2차원 배열에 담아준다.
2. 투플 원소를 담은 2차원 배열과 HashSet을 활용하여 중복되지 않은 값들을 확인한다.
첫번째 스탭에서 원소를 담는 2차원 배열은 String[원소 사이즈][원소에 포함된 숫자들의 배열] 구조이다.
아주 단순하게 가장 작은 사이즈의 원소부터 순차적으로 중복되는 값들을 제거해주면 답을 구할 수 있겠다 싶어서였다.
이후에는 간단하다, 하나씩 큰 사이즈의 투플을 확인하며 중복되는 값들은 버리고, 남은 값들을 정답 배열에 넣어주면 끝이다.
import java.util.*;
class Solution {
public int[] solution(String s) {
String[][] tupleSet = new String[s.split("},").length][1];
String trimedInput = s.substring(1, s.length() - 1);
String tmp = "";
int leftIndex;
String[] charStr = s.split("");
int fromIndex = 0;
for (int i = 0; i < charStr.length; i++) {
String currChar = charStr[i];
if(currChar.equals("{")) {
fromIndex = i + 1;
} else if (currChar.equals("}")) {
String[] tupleElement = tmp.split(",");
tupleSet[tupleElement.length - 1] = tupleElement;
tmp = "";
i++;
} else {
tmp += currChar;
}
}
HashSet<String> dupFilter = new HashSet<String>();
int[] answer = new int[tupleSet.length];
for (int i = 0; i < answer.length; i++) {
for (int j = 0; j < tupleSet[i].length; j++) {
String currStr = tupleSet[i][j];
if(!dupFilter.contains(currStr)) {
answer[i] = Integer.parseInt(currStr);
dupFilter.add(currStr);
}
}
}
return answer;
}
}
반응형
'Java > Java.algorithm' 카테고리의 다른 글
자바(JAVA) - 큰 수 만들기(Programmers : 42883) (0) | 2022.03.27 |
---|---|
자바(JAVA) - 거리두기 확인하기(Programmers : 81302) (0) | 2022.03.23 |
자바(JAVA) - 괄호 변환(Programmers : 12973) (0) | 2022.03.16 |
자바(JAVA) - 메뉴 리뉴얼(Programmers : 72411) (0) | 2022.03.15 |
자바(JAVA) - 단체사진 찍기(Programmers : 1835) (0) | 2022.03.13 |
Comments