본문 바로가기

Algorithm/programmers20

[프로그래머스] 가장 큰 수 가장 큰 수 | Lv.2 https://school.programmers.co.kr/learn/courses/30/lessons/42746 작성코드 str 정렬 후 join (실패) def solution(numbers): return "".join(sorted(list(map(str, numbers)), reverse=True)) numbers 내 원소들을 string 형으로 변환 >> 내림차순 정렬 >> join으로 하나의 string 값으로 만듦 numbers = [3, 30, 34, 5, 9] >> 9534303 3 30 34인 경우 34 3 30 순으로 해야 가장 최대의 값이 나옴 순열 이용 (실패) from itertools import permutations def solution(numbe.. 2023. 5. 14.
[프로그래머스] 단어변환 단어변환 | Lv.3 https://school.programmers.co.kr/learn/courses/30/lessons/43163 작성 코드 (통과) from collections import deque def solution(begin, target, words): # target 값이 word에 없는 경우 바로 return (속도) if target not in words: return 0 q = deque() q.append([begin]) # bfs while q: v = q.popleft() # v[-1] 이 target인 경우 답!! return if v[-1] == target: return(len(v) - 1) for word in words: # v값 영향가지 않도록 값만 복사 tm.. 2023. 5. 11.
[프로그래머스] 게임 맵 최단거리 게임 맵 최단 거리 Lv.2 https://school.programmers.co.kr/learn/courses/30/lessons/1844 작성 코드 (실패) def solution(maps): answer = 0 solutions = [] def dfs(map, i, j, depth): if i = 5 or j = 5 or map[i][j] == 0: return if (i == 4) and (j == 4) and map[i][j] == 1: return solutions.append(depth) maps[i][j] = 0 // 상하좌우 탐색 dfs(map, i + 1, j, depth + 1) dfs(map, i - 1, j, depth + 1) dfs(map, .. 2023. 5. 10.
[프로그래머스] 정수 삼각형 https://school.programmers.co.kr/learn/courses/30/lessons/43105?language=python3 작성 코드 (통과) def solution(triangle): answer = 0 top_sum = [triangle[0][0]] for idx1, t in enumerate(triangle[1:]): tmp_sum = [] for idx2, val in enumerate(t): if (idx2 == 0): tmp_sum.append(top_sum[0] + val) elif (idx2 == len(t) - 1): tmp_sum.append(top_sum[-1] + val) else: tmp_sum.append(max([top_sum[idx2 - 1] + val,.. 2023. 5. 4.
[프로그래머스] N으로 표현 https://school.programmers.co.kr/learn/courses/30/lessons/42895 작성코드 (실패) from collections import deque def solution(N, number): visited = deque([[N, 1]]) while (visited): n, depth = visited.popleft() if n == number: return depth if depth > 8: return -1 d = depth + 1 visited.extend([[10 * n + N, d], [n + N, d], [n - N, d], [n * N, d], [n // N, d]]) 테스트 케이스 일부 통과 88 * 8 - 88 / 8 에서 뺄셈이 제일 나중인데 그걸.. 2023. 5. 3.
[프로그래머스] 올바른 괄호 올바른 괄호 https://school.programmers.co.kr/learn/courses/30/lessons/12909?language=cpp 문제 설명 괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어 "()()" 또는 "(())()" 는 올바른 괄호입니다. ")()(" 또는 "(()(" 는 올바르지 않은 괄호입니다. '(' 또는 ')' 로만 이루어진 문자열 s가 주어졌을 때, 문자열 s가 올바른 괄호이면 true를 return 하고, 올바르지 않은 괄호이면 false를 return 하는 solution 함수를 완성해 주세요. 제한사항 문자열 s의 길이 : 100,000 이하의 자연수 문자열 s는 '(' 또는 ')' 로만 이.. 2023. 5. 1.
반응형