본문 바로가기

프로젝트들/코딩 테스트59

[코딩테스트] 프로그래머스 - 스킬트리 (Lv.2) in Python 스킬트리 후보들을 담은 배열 skill_trees와, 선행스킬순서 skill이 매개변수로 주어질 때, 가능한 스킬트리 갯수를 return. 예시: skills = "CBD" skill_trees = ["BACDE", "CBADF", "AECB", "BDA"] answer = 2 programmers.co.kr/learn/courses/30/lessons/49993 코딩테스트 연습 - 스킬트리 programmers.co.kr 풀이 - 각각의 스킬트리 후보를 봤을 때, skills에 있는 알파벳들이 순서대로 나타나면 가능한 스킬트리이다. 파이썬 구현 def solution(skill, skill_trees): imposs = 0 # count the number of impossible skill trees.. 2021. 2. 14.
[코딩테스트] 프로그래머스 - 주식 가격 (Lv.2) in Python 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 예시: prices = [1,2,3,2,3] return = [4,3,1,1,0] programmers.co.kr/learn/courses/30/lessons/42584 풀이 주어진 배열을 차례대로 살펴보고, 조건에 따라 바로 전 값부터 살펴보는 문제임에 스택이 적절하겠다는 생각이 들었다! 다만 어떤 값을 스택에 저장하느냐에서 많이 애를 먹었는데... ㅜ 결론은 주식의 값이 아니라, 해당 시간을 저장하는 것이 답이었다. 예시: stack = [] answer = [] prices = [1 2 3 1 3] 0초 1초 2초 3초 4초 라고 하자. 0초일 때 비교대상이 없으므로, .. 2021. 2. 14.
[코딩테스트] 프로그래머스 - 멀쩡한 사각형 (Lv.2) in Python 가로의 길이 W (cm) 와 세로의 길이 H (cm) 가 주어질 때, 대각선 하나가 그려져있다. 대각선이 지나가지 않는 1cm x 1cm 정사각형의 개수를 구하라. 처음의 (비효율적인) 풀이 - 처음에는 사각형의 왼쪽 아래 꼭지점을 (0,0)으로 잡고, 대각선을 y = (h/w)*x로 잡아, for i in range(1, h): width = math.floor(w - w / h * i) if width w / h * i 부분에서 실수 계산이 일어나는데, 컴퓨터의 유한한 메모리로 인해 실수는 정확도가 제한된 근사값을 저장하기에 [1], 실수 계산에.. 2021. 2. 14.
[코딩테스트] 프로그래머스 - 여행경로 (Lv.3) in Python flight ticket 정보가 담긴 2차원 배열 tickets가 매개변수로 주어질 때, 방문하는 공항 경로를 배열에 담아 return. 프로그래머스 강의를 바탕으로 풀이했습니다. programmers.co.kr/learn/courses/30/lessons/43164 풀이 1. - 개념으로만 알고 있던 깊이우선탐색 (DFS)과 너비우선탐색(BFS) 활용에 대해 감 잡을 수 있었던 문제. 중요한 것은, 깊이우선탐색(DFS) - 다음 node로 갔다가 진행할 곳이 없으면 바로 그 전 node로 돌아와야 하므로, STACK이 유용 너비우선탐색(BFS) - 각 level의 node들을 모두 방문한 후, 다음 level의 node를 순차적으로 방문해야하므로, 선입선출의 QUEUE가 적절 - 그리고 이 문제는 한붓.. 2021. 2. 14.