programmers/level3 20

[프로그래머스] 네트워크 (Python)

프로그래머스 level3 [깊이/너비 우선 탐색(DFS/BFS)] 네트워크 programmers.co.kr/learn/courses/30/lessons/43162 코딩테스트 연습 - 네트워크 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있 programmers.co.kr 이 문제는 bfs를 사용해서 금방 풀었다. 알고리즘 1. 컴퓨터가 네트워크에 연결되어있는지 확인했다면 True, 확인하지 않았다면 False를 저장할 check를 모두 False로 초기화한다. 2. n만큼 반복문을 돌면서 check[i]가 False라면 그 컴퓨터와 네트워크가 연결된 모든 컴퓨터를..

programmers/level3 2021.03.02

[프로그래머스] 베스트앨범 (Python)

프로그래머스 level3 [해시] 베스트앨범 programmers.co.kr/learn/courses/30/lessons/42579 코딩테스트 연습 - 베스트앨범 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 programmers.co.kr 프로그래머스 풀이 깃 🔗 이 문제는 분류가 해시라서 풀이방향을 쉽게 잡을 수 있었다. 알고리즘 1. 장르별 총 재생횟수를 gen_cnt에 저장하고, 장르별 곡의 고유번호와 재생횟수를 gen_dic에 저장한다. 2. gen_cnt를 value를 기준으로 내림차순 정렬을 한다. 3. gen_cnt의 key를 위에서 정렬한 순서대로 돌..

programmers/level3 2021.02.22

[프로그래머스] N-Queen (Python)

프로그래머스 level3 [연습문제] N-Queen programmers.co.kr/learn/courses/30/lessons/12952 코딩테스트 연습 - N-Queen 가로, 세로 길이가 n인 정사각형으로된 체스판이 있습니다. 체스판 위의 n개의 퀸이 서로를 공격할 수 없도록 배치하고 싶습니다. 예를 들어서 n이 4인경우 다음과 같이 퀸을 배치하면 n개의 퀸은 programmers.co.kr 프로그래머스 풀이 깃 🔗 이 문제도 예전에 푼 적이 있어서 방향은 금방 잡았는데, 좌상향 대각선이 겹치는 걸 체크할 때 사용하는 식을 모르겠어서 다시 검색했다. 풀이는 퀸을 하나하나 놓으면서 조건에 맞는지 체크하는 방식으로, 모든 조건에 맞으면서 모든 퀸을 놓았다면 1을 리턴하여 경우의 수를 세는 방식이다. P..

programmers/level3 2021.02.22

[프로그래머스] 하노이의 탑 (Python)

프로그래머스 level3[연습문제] 하노이의 탑programmers.co.kr/learn/courses/30/lessons/12946코딩테스트 연습 - 하노이의 탑하노이 탑(Tower of Hanoi)은 퍼즐의 일종입니다. 세 개의 기둥과 이 기동에 꽂을 수 있는 크기가 다양한 원판들이 있고, 퍼즐을 시작하기 전에는 한 기둥에 원판들이 작은 것이 위에 있도록 순서대programmers.co.kr프로그래머스 풀이 깃 🔗 이 문제는 너무 유명하기도 하고 백준에서 풀어본 적도 있어서 금방 풀 수 있었다.하노이 탑의 풀이법은 생각보다 간단한데, n개의 원판을 x번 기둥에서 y번 기둥으로 옮겨야 하는 경우, 세 단계를 통해 원판을 옮길 수 있다. 1. n-1개의 원판을 x번 기둥에서 6-x-y번 기둥으로 옮긴다2..

programmers/level3 2021.02.22

[프로그래머스] 최고의 집합 (Python)

프로그래머스 level3 [연습문제] 최고의 집합 programmers.co.kr/learn/courses/30/lessons/12938 코딩테스트 연습 - 최고의 집합 자연수 n 개로 이루어진 중복 집합(multi set, 편의상 이후에는 집합으로 통칭) 중에 다음 두 조건을 만족하는 집합을 최고의 집합이라고 합니다. 각 원소의 합이 S가 되는 수의 집합 위 조건을 만족 programmers.co.kr 이 문제는 s를 n으로 나눈 뒤 나머지를 하나하나 분배해주면 되는 문제였다... 설마 하고 풀어봤는데 맞아서 좀 당황스러웠다. Python code 더보기 def solution(n, s): if n>s: return [-1] div, remain=divmod(s,n) answer=[div]*n for ..

programmers/level3 2021.02.20