programmers/level3 20

[프로그래머스] 줄 서는 방법 (Python)

프로그래머스 level3 [연습문제] 줄 서는 방법 programmers.co.kr/learn/courses/30/lessons/12936 코딩테스트 연습 - 줄 서는 방법 n명의 사람이 일렬로 줄을 서고 있습니다. n명의 사람들에게는 각각 1번부터 n번까지 번호가 매겨져 있습니다. n명이 사람을 줄을 서는 방법은 여러가지 방법이 있습니다. 예를 들어서 3명의 사람 programmers.co.kr 이 문제는 처음에 백트래킹 문제인 줄 알았다. 그래서 dfs로 구현했는데, 시간초과가 나와서 당황했다. 시간을 줄여볼 방법이 없을까 고민하다가 첫번째 숫자는 연산으로 구할 수 있을 것 같아서 간단한 수식을 세워서 첫번째 숫자를 연산으로 구한 뒤 dfs를 실행했다. 그런데도 시간초과가 나서, 이 문제는 백트래킹 ..

programmers/level3 2021.02.20

[프로그래머스] 야근 지수 (Python)

프로그래머스 level3 [연습문제] 야근 지수 programmers.co.kr/learn/courses/30/lessons/12927 코딩테스트 연습 - 야근 지수 회사원 Demi는 가끔은 야근을 하는데요, 야근을 하면 야근 피로도가 쌓입니다. 야근 피로도는 야근을 시작한 시점에서 남은 일의 작업량을 제곱하여 더한 값입니다. Demi는 N시간 동안 야근 피로도 programmers.co.kr 이 문제는 처음에는 너무 막막해서 풀이법을 검색해볼까... 싶었는데 요즘 자꾸 쉽게 포기하는 것 같아서 한 번만 더 생각해보자 하는 마음으로 풀이법을 고민해봤다. 처음에는 works의 값들을 모두 더해서 n을 빼고 그 값을 다시 works의 길이로 나누면 되지 않을까 했는데 그러면 반례가 너무 많아서 틀린 풀이라는..

programmers/level3 2021.02.20

[프로그래머스] 멀리뛰기 (Python)

프로그래머스 level3 [연습문제] 멀리뛰기 programmers.co.kr/learn/courses/30/lessons/12914 코딩테스트 연습 - 멀리 뛰기 효진이는 멀리 뛰기를 연습하고 있습니다. 효진이는 한번에 1칸, 또는 2칸을 뛸 수 있습니다. 칸이 총 4개 있을 때, 효진이는 (1칸, 1칸, 1칸, 1칸) (1칸, 2칸, 1칸) (1칸, 1칸, 2칸) (2칸, 1칸, 1칸) (2칸, 2 programmers.co.kr 프로그래머스 문제 풀이 깃 🔗 이 문제는 처음에는 백트래킹 문제인줄 알고 백트래킹으로 풀려고 했는데, 혹시나 싶어서 1칸인 경우, 2칸인 경우, 3칸인경우의 답을 구해보니 dp문제인 것 같아서 dp방식으로 문제를 풀었다. Python code 더보기 def solution(..

programmers/level3 2021.02.08

[프로그래머스] 가장 긴 팰린드롬 (Python)

프로그래머스 level3 [연습문제] 가장 긴 팰린드롬 programmers.co.kr/learn/courses/30/lessons/12904 코딩테스트 연습 - 가장 긴 팰린드롬 앞뒤를 뒤집어도 똑같은 문자열을 팰린드롬(palindrome)이라고 합니다. 문자열 s가 주어질 때, s의 부분문자열(Substring)중 가장 긴 팰린드롬의 길이를 return 하는 solution 함수를 완성해 주세요. 예를들 programmers.co.kr 프로그래머스 풀이 깃 🔗 파이썬이라서 문자열이 팰린드롬인지 아닌지 판별하는게 쉬웠다. Python code 더보기 def palin(string): return string == string[::-1] def solution(s): answer=1 for i in ra..

programmers/level3 2021.02.01

[프로그래머스] 2 x n 타일링 (Python)

프로그래머스 level3 [연습문제] 2 x n 타일링 programmers.co.kr/learn/courses/30/lessons/12900 코딩테스트 연습 - 2 x n 타일링 가로 길이가 2이고 세로의 길이가 1인 직사각형모양의 타일이 있습니다. 이 직사각형 타일을 이용하여 세로의 길이가 2이고 가로의 길이가 n인 바닥을 가득 채우려고 합니다. 타일을 채울 때는 programmers.co.kr 프로그래머스 풀이 깃 🔗 이 문제는 문제를 읽고 그 경우의 수를 어떤 방식으로 고려해야할 지 감이 오지 않아서 검색을 해봤다. 내가 찾은 풀이법은 가로의 길이가 1씩 증가함에 따라 타일을 놓는 방법이 피보나치 수열의 형태로 증가한다는 것을 활용한 풀이법이었다. Python code 더보기 def solutio..

programmers/level3 2021.01.28