'Development/PS' 카테고리의 글 목록 (5 Page)
본문 바로가기

Development/PS

(44)
[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 라이브러리에는 데이터 컬렉션과 관련된 다양한 유용한 클래스..
[정렬] 프로그래머스 level 2 H-Index python 풀이 https://school.programmers.co.kr/learn/courses/30/lessons/42747 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음 문제 접근 citations 각 요소들을 비교하면서 인용 횟수를 세야하나..? 그럼 이중 for문을 써야 하나..? 그래도 뭔가 이상한데.. 다시 문제 접근 1. 가장 인용횟수가 높은 논문 인덱스부터 정렬한 후 2. 0회 인용 횟수부터 시작해서 논문 하나씩 비교해 나가면서 +1 하다가 3. 인용 횟수보다 더 낮은 인용 횟수의 논문이 나오면 break 이런 식으로 간단히 풀 수 있었다.. 코드..