알고리즘 문제풀이

    [프로그래머스] 전화번호 목록 in JAVA

    개요 프로그래머스 고득점 Kit에서 level 2인 전화번호 목록 문제입니다. 이 문제의 유형은 해시맵으로 key, value로 이루어진 해시맵 자료구조를 활용해야한다는 힌트가 주어집니다. 문제의 요구사항은 전화번호가 적힌 문자열 배열에서 어느 한 전화번호가 다른 전화번호의 접두어일 경우를 찾는 것입니다. 중복되는 문자열은 존재하지 않습니다. * 119의 접두어로는 1, 11이 있습니다. 모든 값을 순회하는 해결 public boolean solution2(String[] phone_book) { for (int i = 0; i < phone_book.length; i++) { for (int j = 0; j < phone_book.length; j++) { if (i == j) { continue; }..

    [프로그래머스] 완주하지 못한 선수 in JAVA

    완주하지 못한 선수 프로그래머스 사이트 코딩 테스트 고득점 Kit 메뉴에 해시 카테고리에 Level 1문제이다. 해시맵 자료구조를 사용하면 더 효율적으로 해결할 수 있는 문제가 존재한다. 해시맵 자료구조는 key-value쌍으로 저장하며 검색과 입력이 O(1)인 장점이 있는 자료구조이다. 문제의 요구사항은 마라톤에 참여한 선수들의 이름이 담긴 배열과 완주한 선수의 이름이 담긴 배열이 주어지고 완주하지 못한 선수의 이름을 리턴하는 것이다. 테스트 케이스마다 완주하지 못한 선수는 항상 1명이며 또한 동명이인이 있을 수 있으니 주의하여야 한다. 문제 해결의 핵심 아이디어 문자열을 비교해야하며 동명이인이 존재하기 때문에 이 또한 카운트를 해야한다. 1. 해시맵 자료구조에 참석한 선수의 이름과 인원 수를(동명이인..