반응형

코테 39

[프로그래머스 고득점 Kit] 베스트앨범 자바 풀이 및 정답

프로그래머스 고득점 kit 해시 카테고리의 레벨 3 문제 "베스트앨범" 이라는 문제입니다. 문제요약) - 장르, 재생횟수가 주어짐 - 인기 있는 장르, 재생횟수, 인덱스 순서대로 분류해서 리턴 주의점) - 특정 장르의 모든 재생횟수를 더해서 가장 인기있는 장르 순서를 파악 - 한 장르에서 최대2곡만 선정해서 정답배열에 담아야함 풀이방법) 1. 특정 장르를 계산 -> HashMap활용해서 재생횟수를 더함 2. 인기있는 장르부터 선별하기 위해 내림차순 정렬이 필요하기에 List정의, 람다식을 활용해 재생횟수 기준으로 내림차순 정렬 3. List의 key값 순서대로 최대 두 곡을 뽑아서 정답배열에 분배 특정 장르에서 재생횟수가 많은 부분을 찾는건 조금 더 좋은 코드로 쓸 수 있을 것 같습니다. 코드의 중복 제..

[프로그래머스 고득점 Kit] 의상 자바 풀이 및 정답

프로그래머스 고득점 Kit 해시 분류의 "의상" 이라는 문제입니다. 문제요약) - 여러 종류의 의상이 주어짐 - 매일 다른 옷을 입는 경우의 수 리턴 주의점) - 옷을 하나라도 입으면 인정 풀이 방법) - 종류별로 옷의 개수 + 해당 종류의 옷을 안입는 경우를 계산해서 다른 옷의 종류와 곱 정답 코드) 경우의 수만 헷갈리지 않고 계산해준다면 큰 어려움 없이 풀 수 있는 문제 같습니다.

[프로그래머스 고득점 Kit] 전화번호 목록 자바 풀이 및 정답

프로그래머스 고득점 Kit 해시 분류의 "전화번호 목록"이라는 문제입니다. 문제요약) - 전화번호 여러개가 주어짐 - 그 중 어떤 전화번호가 다른 전화번호의 접두사면 false, 아니면 true 리턴 주의점) - 시간복잡도 고려(phone_book의 길이가 100만이어서 O(n2)시 시간초과 위험) - 포함여부가 아닌, "접두사" 여부 판단 풀이 방법) 1. 단순 무식하게 for문 두번 돌리면서 비교 O(n2). -> 2022년까지 되던 방법이었으나 현재 효율성 기준을 보완한것으로 보임. 이 방법으로 진행 시 효율성 테스트 통과x 2. 문자열 정렬 특성을 활용해서 정렬 후 해시값 비교 1번 방법은 사실 잠깐이라도 되었던게 이상할 정도의 문제로 보입니다. 2번으로 풀이하시면 되겠습니다. 정답 코드) 여기서..

숫자로 되어있는 문자열의 정렬 기준(전화번호 목록 문제 부가 설명)

프로그래머스 고득점 Kit에 "전화번호 목록"이라는 문제가 있습니다. 주어진 전화번호 목록에서 특정 전화번호가 다른 전화번호의 접두사가 아닌지 비교하는 문제인데, 여기서 정렬을 활용하지 못하면 O(n2)으로 문제를 접근하게 됩니다. 반면, 정렬을 활용하면 O(n)의 시간복잡도로 문제를 풀수가 있습니다. 해시 문제, 문자열 문제 등에서 자주활용되는게 정렬이기에 숫자에 관한 정렬도 알아두면 좋은 부분이라고 생각합니다. 에시 2개로 간단하게 살펴보겠습니다. 첫번째 예시) 만약 위와 같은 문제에서 어떻게 정렬이 되는지 정확하게 알고 계시다면 이번 포스팅에서 볼 부분을 다 알고 계시기에 넘어가셔도 괜찮습니다. 정답은 01, 1, 10, 100, 1009, 11, 15, 3, 30, 3100, 9999, c 순서입..

코테/종합 2023.12.25

[프로그래머스 고득점 Kit] 폰켓몬 자바 풀이 및 정답

프로그래머스 고득점 Kit 폰켓몬이라는 문제는 위와 같습니다. 문제요약) - 여러 종류의 폰켓몬이 존재 - 총 폰켓몬 수의 절반만큼 가져올 수 있음 - 가져올 수 있는 최대 종류의 폰켓몬을 반환 주의점) - 없음 풀이 방법) 1. 폰켓몬의 종류를 HashMap에 저장 2. 몇마리이든 종류를 반환하기 때문에 같은 종류의 수는 무관 정답 코드)

[프로그래머스 고득점 Kit] 완주하지 못한 선수 자바 풀이 및 정답

완주하지 못한 선수라는 문제는 위와 같습니다. 문제 요약) - 선수 명단이 주어진다. - 완주자 명단이 주어진다. - 완주하지 못한 선수 이름을 반환하는 함수 작성 주의점) - 동명이인이 있을 수 있다. 풀이 방법) 1. HashMap에 각 선수 저장 2. 동명이인이 존재하기 때문에 true, false 등으로 단순 구분이 아닌 인원을 판단해야하기에 HashMap형태로 선언 3. 완주하지 못한 선수 반환 정답 코드)

[백준]17413번 단어뒤집기 자바 정답 코드

백준 17413번 단어뒤집기 자바 정답 코드 1. 정방향 글자 -> Queue사용 2. 역방향 글자 -> Stack사용 3. char를 더하는 경우가 잦아서 불변 객체인 String 대신 가변객체인 StringBuilder 사용 package bakjun.string; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue; import java.util.Stack; public class B17413 { public static void main(String[] args) throws IOExcepti..

코테/문제풀이 2023.11.15

백준 코딩테스트 초보 추천 문제 모음(브론즈~골드3)

백준에서 코딩테스트 초보 단계에서 풀어가면 괜찮지 않을까 싶은 문제들을 종합해 놓은 페이지입니다. 파이썬, C++, 자바 등 여러 언어들이 지원되는 사이트지만 저는 자바로 문제들을 풀어나가고 있습니다. 브론즈 문제는 정말 괜찮다고 생각되는 문제, 그 외에는 실버문제, 너무 높지 않은 난이도의 골드 문제들이 대상입니다. 제가 이미 푼 문제들도 있고 풀어갈 문제들도 정리하고 있습니다. 좋은 문제를 추천하는 곳들은 이미 많아서 제가 정리한 목록 외에도 참고하고자 하시는 분들은 아래 글 참고해서 본인만의 문제목록을 만들어가시는 것도 좋은 방법이라고 생각합니다. 다양한 백준 추천 문제 사이트 목록 무조건 한 파트에서 골드까지 풀고 다른 파트로 넘어가면서 진행하면 어려울 수 있으니 꼭 한 파트를 골드까지 정복하고 ..

코테/종합 2023.11.14

[프로그래머스][L2] 최댓값과 최솟값 자바 문제 풀이 및 정답

[프로그래머스][L2] 최댓값과 최솟값 자바 문제 풀이 및 정답 피보나치에 대한 문제를 보면 재귀함수를 떠올릴 수 있지만 해당 문제는 재귀를 통해 풀면 안된다는게 유추되는 문제입니다. n번째 수를 1234567로 나눈 수를 구해야 하고 n은 최대 100,000까지로 주어지게되는데 재귀를 이용하면 50번째 근처만 가도 굉장히 오래걸리게 됩니다. 즉, 시간 효율이 굉장히 안좋기 때문에 10만번째의 수까지 재귀로 구한다는건 이미 아니란걸 어느정도 유추할 수 있습니다. 피보나치를 재귀로 풀어가는 과정에 대한 블로그를 참고해보면 조금 더 쉽게 알 수 있습니다. https://velog.io/@beton/문제풀이재귀함수의-형태로-피보나치-수열-구하기 [문제풀이]재귀함수의 형태로 피보나치 수열 구하기 n번째의 피보나..

코테/문제풀이 2023.07.01
반응형