Jam's story

[프로그래머스] 문자열 나누기 java 본문

코딩테스트/프로그래머스

[프로그래머스] 문자열 나누기 java

애플쩀 2022. 12. 27. 15:55

나 괜히 어렵게 접근하고 잇었다ㅣ..

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;
	}
Comments