본문 바로가기

Development/CodingTest

(29)
[Hash]프로그래머스 level 2 의상 java 풀이 https://school.programmers.co.kr/learn/courses/30/lessons/42578 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 접근 각 옷의 유형을 Key, 종류를 Value로 하고 모든 경우의 수를 계산한다. 아무 것도 안 입었을 때를 answer - 1, 옷 종류 당 한 번씩 안 입은 경우를 +1 한다. 코드 import java.util.HashMap; class Solution { public int solution(String[][] clothes) { HashMap clothTable = new HashM..
[DP] 프로그래머스 level 3 N 으로 표현 Python 풀이 https://school.programmers.co.kr/learn/courses/30/lessons/42895 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 접근 N을 1개 사용해서 할 수 있는 표현은 5 N을 2개 사용해서 할 수 있는 표현은 55, 5+5, 5-5, 5*5, 5/5 N을 3개 사용해서 할 수 있는 표현은 555, 55 + 5, 55 - 5, 55 * 5, 55 / 5, 5 + 5 + 5, 5 - 5 - 5, 5 / 5 / 5, 5 * 5 * 5 일반화 해보면 n번 이어 붙여서 만든 수 1번 사용해서 표현한 수 집합 (사칙 연산..
[DFS] 프로그래머스 level 2 타켓넘버 Python 풀이 https://school.programmers.co.kr/learn/courses/30/lessons/43165 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 접근 모든 경우의 수를 구하는 것이므로 DFS/BFS +1, -1 각각 연산하면서 값이 target과 같으면 answer +1 코드 def solution(numbers, target): answer = 0 numbers_length = len(numbers) def dfs(idx, value): if idx == numbers_length: if target == value: nonloca..
[완전탐색] 프로그래머스 level 2 소수 찾기 Python 풀이 https://school.programmers.co.kr/learn/courses/30/lessons/42839?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 접근 일단 모든 만들 수 있는 숫자를 생성해야 함 -> 순열 소수 판별하는 함수를 만들어야함 Java로 구현하려 했으나.. 자바에서 순열을 연산해 주는 라이브러리가 없는 것 같아서 https://github.com/TheAlgorithms/Java/blob/c527dff92da2046b850ffe9a3b8d0c2aae15d588/src/main/java/com/..
[2022 KAKAO TECH INTERNSHIP] 두 큐 합 같게 만들기 Python 풀이 https://school.programmers.co.kr/learn/courses/30/lessons/118667 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 접근 핵심은 총합이 큰 queue에서 작은 queue로 요소가 이동해야 함 반복문을 돌면서 한쪽 큐로 옮겨보고, 합해보고, 다시 비교해 보고 같아지거나 최대 카운트 벗어나면 break 시간 초과 시간 초과에 대해 고민을 했는데.. sum() 함수 연산을 최소화 (변수에 저장하고 연산하는 식으로) 최대 연산 수를, 하나의 queue가 싹 빠지고 다시 원래 queue로 돌아오는 경우라 생각해서..
[2022 KAKAO TECH INTERNSHIP] 성격 유형 검사하기 Python 풀이 https://school.programmers.co.kr/learn/courses/30/lessons/118666 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 접근 각 성격 유형 별로 score를 저장하는 자료구조가 필요할 듯 근데 default 값이 있어야 성격을 모두 출력 가능하니, defaultdict 사용 "RT"던 "TR"이던 신경 쓸 필요는 없어 보임 어차피 score에 따라 점수 부여가 달라지니깐 같은 점수일 경우 사전식으로 정렬하여 출력하면 되니 sort 후 점수 비교하여 answer에 추가 코드 import collections ..
[Hash] 프로그래머스 Level 2 전화번호 목록 Python 풀이 https://school.programmers.co.kr/learn/courses/30/lessons/42577 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 접근 Sort를 하면 사전식으로 정렬을 하게 되는데, 이는 결국엔 문자열 길이 상관없이 앞 문자를 기준으로 정렬하게 된다. 결국 접두사가 되려면 앞 문자가 같아야 하므로 앞 문자가 같은 문자열끼리 정렬이 된다. 바로 앞 인덱스 문자끼리만 비교하면 되고, startswith 함수를 통해 비교 가능하다. 코드 def solution(phone_book): phone_book = sorted(ph..
[Hash] 프로그래머스 level 1 완주하지 못한 선수 python 풀이 https://school.programmers.co.kr/learn/courses/30/lessons/42576 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 접근 Participant, completion을 HashMap 자료구조로 변환 후 '-' 연산을 하는 방식을 떠올렸으나. 적당한 key나 value 값을 못 골랐다. 찾아보다가 Counter를 사용하면 목적에 위 방식에 딱 맞는 자료구조로 변환이 가능해서 간단하게 구현이 가능하였다. Counter Python의 collections 라이브러리에는 데이터 컬렉션과 관련된 다양한 유용한 클래스..