본문 바로가기

Algorithm

(175)
[프로그래머스] Lv.2 모음사전 https://school.programmers.co.kr/learn/courses/30/lessons/84512 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 해결방법 완전탐색 문제는 항상 dfs로 풀었다. 모음이 5개가 되면 return 해주는 방식으로 재귀를 돌렸다. 물론 aeiou를 순서대로 문자열에 더하면서 재귀를 돌리는 방식이라 리턴이 되더라도 마지막에 더해진 문자열은 영향을 받지 않는 다는 특성을 이용한 것이다. 경험이 너무 적다보니 이렇게 쉬운 문제도 많이 헤맸다. 아직 많이 부족하다... 2. 정답코드 def solution(word..
[프로그래머스] Lv.2 방문 길이 https://school.programmers.co.kr/learn/courses/30/lessons/49994 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 해결방법 상하좌우를 딕셔너리 구조로 초기 값을 설정한다. for문을 돌려서 if문으로 범위를 넘어가지 않는 선에서 로직을 구성하는데 여기서 중요한 부분은 result 리스트에 저장할 때, (y, x, dy, dx) 형태로 저장을 한다. 중복된 거리를 이동하더라도 answer 카운트는 올라가지 않기 때문에 set() 메서드를 통해서 중복된 값들을 제거한다. 틀린 코드에서는 단순히 일방통행을 기..
[BOJ] 1463. 1로 나누기 https://www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net 1. 해결방법 DP문제이다. 본인은 DP로 해결해야할지 감은 왔지만 해결을 전혀 하지 못했다... 먼저 [0]을 N + 1만큼 리스트를 만들어준다. [1], [2]의 값은 0, 1로 정해져 있으므로, 2부터 N + 1까지 for문을 돈다 i를 2부터 돌면서 dp[i]의 값을 dp[i - 1]에 + 1을 무조건 해주고, if문으로 2와 3으로 나누어 지는지 차례대로 비교해야한다. 물론 둘다 비교해야한다 비교해서 최솟값을 dp[i]에 갱신한다. 진짜 너무 어려웠다.... DP 공부가 많이 부족한 듯 하다. 2. 정..
[프로그래머스] Lv.2 땅따먹기 https://school.programmers.co.kr/learn/courses/30/lessons/12913 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 해결방법 이번 문제의 해결 알고리즘은 DP이다. DP 공부를 거의 안하다 보니 시간이 엄청 오래 걸렸다. 많이 풀다보면 느낌이 올만한 문제였을 것 같다. 열의 길이는 4로 제한되어있으니 작업중인 행과 이전의 행, 열의 인덱스의 값을 비교해서 작업중인 행, 열의 인덱스 값에 추가해주도록 하는 방식으로 구현하면 된다. 다만 연속적으로 같은 열의 인덱스를 선택할 수 없으므로 작업중인 행 이전의 행..
[프로그래머스] Lv.2 피로도 https://school.programmers.co.kr/learn/courses/30/lessons/87946 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 해결방법 이 문제에서 완전 탐색 순열을 구현하는 데 떠오른 방법은 두 가지다. 1. dfs를 이용하는 방법 2. 파이썬 itertools라이브러리의 permutations를 이용하는 방법 물론 두 가지 전부 사용해 볼 것이다. 2. 정답코드 (1) dfs answer = 0 def solution(k, dungeons): def enter(i, k): global answer k -= dun..
[프로그래머스] Lv.2 위장 https://school.programmers.co.kr/learn/courses/30/lessons/42578 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 해결방법 이 문제는 경우의 수 문제이다. dict을 이용해서 의류 종류에 맞게 저장하고, 이후에는 어떻게 수학적으로 공식을 사용할 것인가에 대한 아이디어 문제이다. 이번은 나름 쉬운 수학적 케이스로 경우의 수 문제이다. 스파이는 안경이 1개 있다고 할 때, 안경을 쓸 수도 있고 안쓸 수도 있다. 그래서 안경의 개수 1에서 안 쓸수 있는 경우 1개를 더한 2의 값을 다른 의류 경우의 수와 곱한..
[프로그래머스] Lv.2 괄호 회전하기 https://school.programmers.co.kr/learn/courses/30/lessons/76502# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 해결방법 Queue와 Stack를 둘 다 사용해야 한다. 먼저 파이썬의 deque() 메서드와 rotate()메서드를 이용해서 for문을 이용해서 괄호를 한 칸씩 움직이는 로직을 구성한다. 그 다음 for문에서 stack 원리처럼 괄호를 하나하나 올바른 괄호인지 체크해야한다. (, [, { 가 첫 괄호이면 append하고 아니라면 그거는 올바른 괄호가 아닌 문자열로 반환을 한다. pop()..
[프로그래머스] Lv.2 H-Index https://school.programmers.co.kr/learn/courses/30/lessons/42747 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 해결방법 https://en.wikipedia.org/wiki/H-index h-index - Wikipedia From Wikipedia, the free encyclopedia Jump to navigation Jump to search Metric that attempts to measure the productivity and citation impact of a person's pu..