Jam's story
[프로그래머스] 문자열 나누기 java 본문
나 괜히 어렵게 접근하고 잇었다ㅣ..
package lv01;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
public class 문자열나누기 {
//문자열 하나하나 비교
public static String s;
public static int idx;
public static int solution(String s) {
//HashMap<String, Integer>
//int 값이 같은게 있다면, 자르기
HashMap<String, Integer> map=new HashMap<>();
String[] strarr=s.split("");
map.put(strarr[0], 1);
System.out.println(strarr[0]);
//for문으로 알파벳을 하나씩 돌면서
for (int i = 1; i < strarr.length; i++) {
System.out.println(strarr[i]);
map.put(strarr[i], map.getOrDefault(strarr[i], 0)+1);
//arr안에 알파벳의 value값이 같은게 있나 확인
Iterator it= map.entrySet().iterator();
//hashmap반복문을 돌자
while (it.hasNext()) {
Map.Entry<String, Integer> entry = (Map.Entry)it.next();
/*
if(entry.getValue()==map.get(strarr[i])) {
System.out.println("값이 같애 " +strarr[i]);
System.out.println("같은 값은"+entry.getKey());
//map.clear();
}
*/
System.out.println(entry.getKey()+", "+ entry.getValue());
}
}//if
int answer = 0;
return answer;
}
public static void main(String[] args) {
solution("banana");
//solution("abracadabra");
//solution("aaabbaccccabba");
}
}
싹 지우고
못풀겟어서 풀이를 봣는데
어떻게 이런생각을 한거징 ㄷ
public int solution(String s) {
//첫번째글자는 처음나오니까 넣어준다.
char first = s.charAt(0);
int firstNum = 0;
int diff = 0;
int result = 0;
for (int i = 0; i < s.length(); i++) {
System.out.println("지금 for문 순서 글자는 "+ s.charAt(i));
if (firstNum == diff) {
result++;
first = s.charAt(i);
}
if (s.charAt(i) == first) firstNum++;
else diff++;
}
return result;
}
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 명예의 전당 java (0) | 2022.12.27 |
---|---|
[프로그래머스] 숫자찾기 java (0) | 2022.12.27 |
[프로그래머스] 자릿수 더하기 java (0) | 2022.12.26 |
[프로그래머스] 크기가 작은 부분문자열 java (1) | 2022.12.24 |
[프로그래머스] 제곱수판별하기 java (0) | 2022.12.24 |
Comments