인프런 커뮤니티 질문&답변

vkfksaosldk님의 프로필 이미지
vkfksaosldk

작성한 질문수

자바 코딩테스트 - it 대기업 유제

3. "서로 다른 빈도수 만들기" 코드 해설

서로 다른 빈도수 만들기

작성

·

211

0

	public int solution(String s){
		int answer = 0;
		HashMap<String, Integer> map = new HashMap<>();
		HashSet<Integer> hs = new HashSet<>(); //유일하게 존재해야한다 => 해시셋 사용
		String[] list = s.split("");
		for(int i=0; i<list.length; i++) {
			map.put(list[i], map.getOrDefault(list[i], 0)+1);
		}
		
		
		for(String x : map.keySet()) {
			int check = map.get(x);
			while(hs.contains(check)) { //셋에 이미 숫자가 있으면 하나를 감소
				check--;
				if(check==0) { //0은 넣지 않는다.
					answer++;
					break;
				}
				answer++;
			}
			hs.add(check);
		}
		return answer;
	}

이처럼 작성했는데 답은 모두 맞게 출력되는데, 강사님이 작성하신 알고리즘이랑 동일한 건가요???

답변 1

0

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

네. 동일한 코드로 생각됩니다.

vkfksaosldk님의 프로필 이미지
vkfksaosldk

작성한 질문수

질문하기