[LeetCode] 1726. Tuple with Same Product (Python)
·
코딩 테스트
Problem Solutionpermutation순열과 조합을 사용하여 푸는 문제.defaultdict 의 value를 리스트로 선언하여 2개의 integer 곱을 key로, tuple 을 value로 저장하였다.value 길이 (리스트)가 2 이상이면 value 길이만큼 8 x nC2 를 곱하여 경우의 수를 구하고 정답에 ++ 하였다.8을 곱하는 이유는 a*b = c*d 인 (a,b,c,d)의 경우의 수가 8이기 때문! ( 4permutation * 2 pairs)nC2를 한 이유는 value 길이 = n 에서 2개의 튜플을 선택해야되기 때문! Codefrom collections import defaultdictclass Solution: def tupleSameProduct(self, nums..
[프로그래머스] 6주차 - 복서 정렬하기 (C++)
·
코딩 테스트
1. 문제 https://programmers.co.kr/learn/courses/30/lessons/85002#qna 코딩테스트 연습 - 6주차 복서 선수들의 몸무게 weights와, 복서 선수들의 전적을 나타내는 head2head가 매개변수로 주어집니다. 복서 선수들의 번호를 다음과 같은 순서로 정렬한 후 return 하도록 solution 함수를 완성해주세요 programmers.co.kr 2. 풀이 문제의 기준에따라 정렬을해야하는 sorting문제. 승률을 구할때 자기자신과는 싸울 수 없어서 당연히 전체 경기 수 = 전체 복서 수 - 1 로 계산했다가 잘못 된 것을 인지하고 고쳤다. 경기를 안한 N도 있기때문에 전체 경기 수는 자기자신이 아니고 N인 경우를 제외한 W, L일 경우를 모두 카운트 해..
[프로그래머스] 가장 먼 노드 (C++)
·
코딩 테스트
1. 문제 https://programmers.co.kr/learn/courses/30/lessons/49189/solution_groups?language=cpp 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2. 풀이 BFS를 활용한 그래프 문제. 1) 양방향 그래프이므로 그래프의 연결 상태를 저장하낟. 2) 1번 노드부터 시작하여 방문 여부를 체크한다. 3) 방문하지 않은 노드의 경우 dist 거리를 갱신하고 방문 여부를 체크, 큐에 저장 4) 2~3번 반복 5) dist에 저장한 거리 중 가장 최대 값을 구한다. 6) 최대값 max_val인 노드가..
[프로그래머스] 입국심사 (C++)
·
코딩 테스트
1. 문제 https://programmers.co.kr/learn/courses/30/lessons/43238/solution_groups?language=cpp 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2. 풀이 처음에 이게 왜 이분탐색 문제일까 고민했다.. 완전탐색으로 풀려하니 시간 복잡도에서 시간초과가 날 것 같았다. 그래서 다른 사람들의 풀이를 찾아보니 최소의 경우 (최소 소요시간 1분) ~ 최악의 경우 (제일 오래 걸리는 시간) 사이에서 이분 탐색으로 모든 사람의 심사를 완료하면서 최소의 시간을 찾는 문제였다. 그리고 각 심사관이 처리할 ..
[프로그래머스] 베스트앨범 (Python)
·
코딩 테스트
1. 문제 https://programmers.co.kr/learn/courses/30/lessons/42579?language=python3 코딩테스트 연습 - 베스트앨범 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 programmers.co.kr 2. 풀이 1) 가장 많이 재생된 장르순으로 정렬한다. 2) 가장 많이 재생된 play 순으로 정렬한다. 3) play 수가 동일하면 가장 작은 index 먼저 정렬한다. 3. 코드 def solution(genres, plays): answer = [] genres_cnt = {} for i in range(len(g..
[프로그래머스] 섬 연결하기 (C++)
·
코딩 테스트
1. 문제 https://programmers.co.kr/learn/courses/30/lessons/42861 코딩테스트 연습 - 섬 연결하기 4 [[0,1,1],[0,2,2],[1,2,5],[1,3,1],[2,3,8]] 4 programmers.co.kr 2. 풀이 네트워크와 비슷해보이지만 MST문제로 크루스칼 알고리즘을 사용해야한다. 1) 비용이 작은 순으로 정렬한다. 2) 최소 비용으로 다리를 연결하고 싸이클이 생기는지 확인한다. 1번 섬과 2번 섬이 연결되면 island[1] = 2, island[2] = 1이 된다. 3) 싸이클이 생기지 않으면 두 섬 사이에 다리를 연결한다. 1) ~ 3) 을 costs 길이만큼 반복!! *크루스칼 알고리즘: https://hyeri0903.tistory.co..