반응형
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 |
Tags
- 코틀린
- Event Loop
- element tree
- Lazy
- 비동기 처리
- Android
- 완전탐색
- 자바
- IOS
- 거리알고리즘
- 앱아이콘 변경
- Render object tree
- Java
- zwj
- 자료구조
- flutter
- 플러터 동작
- linebreak
- 재귀
- 에러
- dart
- 알고리즘
- 플러터
- 프로그래머스
- 초기화
- 싱글톤
- Kotlin
- Singleton
- microtask queue
- dfs
Archives
- Today
- Total
모바일 개발하는 자바리안의 메모장
자바(JAVA) - 튜플(Programmers : 64065) 본문
반응형
https://programmers.co.kr/learn/courses/30/lessons/64065
코딩테스트 연습 - 튜플
"{{2},{2,1},{2,1,3},{2,1,3,4}}" [2, 1, 3, 4] "{{1,2,3},{2,1},{1,2,4,3},{2}}" [2, 1, 3, 4] "{{4,2,3},{3},{2,3,4,1},{2,3}}" [3, 2, 4, 1]
programmers.co.kr
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