GitHub

https://github.com/Choidongjun0830

파이썬 알고리즘 문제 풀이 228

[프로그래머스] Lv3. 정수 삼각형 파이썬 DP

정수 삼각형 문제 설명 위와 같은 삼각형의 꼭대기에서 바닥까지 이어지는 경로 중, 거쳐간 숫자의 합이 가장 큰 경우를 찾아보려고 합니다. 아래 칸으로 이동할 때는 대각선 방향으로 한 칸 오른쪽 또는 왼쪽으로만 이동 가능합니다. 예를 들어 3에서는 그 아래칸의 8 또는 1로만 이동이 가능합니다. 삼각형의 정보가 담긴 배열 triangle이 매개변수로 주어질 때, 거쳐간 숫자의 최댓값을 return 하도록 solution 함수를 완성하세요. 내 풀이 def solution(triangle): answer = 0 for i in range(1, len(triangle)): for j in range(len(triangle[i])): if j == 0: triangle[i][j] += triangle[i-1][..

[프로그래머스] Lv0. 등수 매기기

등수 매기기 문제 설명 영어 점수와 수학 점수의 평균 점수를 기준으로 학생들의 등수를 매기려고 합니다. 영어 점수와 수학 점수를 담은 2차원 정수 배열 score가 주어질 때, 영어 점수와 수학 점수의 평균을 기준으로 매긴 등수를 담은 배열을 return하도록 solution 함수를 완성해주세요. 내 풀이 def solution(scores): avg = [] answer = [] for score in scores: avg.append(sum(score)/2) sorted_avg = sorted(avg, reverse=True) for i in avg: answer.append(sorted_avg.index(i)+1) return answer 공동 순위를 처리해주어야 하는데 이것을 그냥 내림차순으로 정..

[프로그래머스] Lv1. 둘만의 암호 파이썬

둘만의 암호 문제 설명 두 문자열 s와 skip, 그리고 자연수 index가 주어질 때, 다음 규칙에 따라 문자열을 만들려 합니다. 암호의 규칙은 다음과 같습니다. 문자열 s의 각 알파벳을 index만큼 뒤의 알파벳으로 바꿔줍니다. index만큼의 뒤의 알파벳이 z를 넘어갈 경우 다시 a로 돌아갑니다. skip에 있는 알파벳은 제외하고 건너뜁니다. 예를 들어 s = "aukks", skip = "wbqd", index = 5일 때, a에서 5만큼 뒤에 있는 알파벳은 f지만 [b, c, d, e, f]에서 'b'와 'd'는 skip에 포함되므로 세지 않습니다. 따라서 'b', 'd'를 제외하고 'a'에서 5만큼 뒤에 있는 알파벳은 [c, e, f, g, h] 순서에 의해 'h'가 됩니다. 나머지 "ukks..

[프로그래머스] Lv2. 귤 고르기 파이썬

귤 고르기 문제 설명 경화는 과수원에서 귤을 수확했습니다. 경화는 수확한 귤 중 'k'개를 골라 상자 하나에 담아 판매하려고 합니다. 그런데 수확한 귤의 크기가 일정하지 않아 보기에 좋지 않다고 생각한 경화는 귤을 크기별로 분류했을 때 서로 다른 종류의 수를 최소화하고 싶습니다. 예를 들어, 경화가 수확한 귤 8개의 크기가 [1, 3, 2, 5, 4, 5, 2, 3] 이라고 합시다. 경화가 귤 6개를 판매하고 싶다면, 크기가 1, 4인 귤을 제외한 여섯 개의 귤을 상자에 담으면, 귤의 크기의 종류가 2, 3, 5로 총 3가지가 되며 이때가 서로 다른 종류가 최소일 때입니다. 경화가 한 상자에 담으려는 귤의 개수 k와 귤의 크기를 담은 배열 tangerine이 매개변수로 주어집니다. 경화가 귤 k개를 고를..

[프로그래머스] 로그인 성공?

로그인 성공? 문제 설명 머쓱이는 프로그래머스에 로그인하려고 합니다. 머쓱이가 입력한 아이디와 패스워드가 담긴 배열 id_pw와 회원들의 정보가 담긴 2차원 배열 db가 주어질 때, 다음과 같이 로그인 성공, 실패에 따른 메시지를 return하도록 solution 함수를 완성해주세요. 아이디와 비밀번호가 모두 일치하는 회원정보가 있으면 "login"을 return합니다. 로그인이 실패했을 때 아이디가 일치하는 회원이 없다면 “fail”를, 아이디는 일치하지만 비밀번호가 일치하는 회원이 없다면 “wrong pw”를 return 합니다. 내 풀이 def solution(id_pw, db): answer = 'fail' for data in db: if id_pw[0] == data[0]: if id_pw[1..

[HackerRank] Bigger is Greater 파이썬

https://www.hackerrank.com/challenges/bigger-is-greater/problem?isFullScreen=true Bigger is Greater | HackerRank Rearrange the letters of a string to construct another string such that the new string is lexicographically greater than the original. www.hackerrank.com def biggerIsGreater(w): #w를 list로 만들기 w = list(w) #i번째가 i+1보다 작으면 반복을 멈추기 i = len(w) - 2 while i >= 0 and w[i] >= w[i+1]: i -= 1 #i..

[프로그래머스] Lv0. 외계어사전 파이썬

외계어 사전 문제 설명 PROGRAMMERS-962 행성에 불시착한 우주비행사 머쓱이는 외계행성의 언어를 공부하려고 합니다. 알파벳이 담긴 배열 spell과 외계어 사전 dic이 매개변수로 주어집니다. spell에 담긴 알파벳을 한번씩만 모두 사용한 단어가 dic에 존재한다면 1, 존재하지 않는다면 2를 return하도록 solution 함수를 완성해주세요. 원래 이중 반복문으로 word와 spell을 돌면서 찾으려 했는데 뭔가 잘 안됐다. 그러다가 차집합을 이용한 풀이를 봤다. 차집합... def solution(spell, dic): for word in dic: if not set(spell) - set(word): return 1 return 2 다른 풀이 def solution(spell, di..

[프로그래머스] Lv0. 안전지대

안전지대 문제 설명 다음 그림과 같이 지뢰가 있는 지역과 지뢰에 인접한 위, 아래, 좌, 우 대각선 칸을 모두 위험지역으로 분류합니다. 지뢰는 2차원 배열 board에 1로 표시되어 있고 board에는 지뢰가 매설 된 지역 1과, 지뢰가 없는 지역 0만 존재합니다. 지뢰가 매설된 지역의 지도 board가 매개변수로 주어질 때, 안전한 지역의 칸 수를 return하도록 solution 함수를 완성해주세요. def solution(board): answer = 0 boom_index = [] for i in range(len(board)): for j in range(len(board)): if board[i][j] == 1: boom_index.append((i,j)) result_board = board..

[프로그래머스] Lv3. 네트워크 파이썬 dfs, bfs

네트워크 문제 설명 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있을 때 컴퓨터 A와 컴퓨터 C도 간접적으로 연결되어 정보를 교환할 수 있습니다. 따라서 컴퓨터 A, B, C는 모두 같은 네트워크 상에 있다고 할 수 있습니다. 컴퓨터의 개수 n, 연결에 대한 정보가 담긴 2차원 배열 computers가 매개변수로 주어질 때, 네트워크의 개수를 return 하도록 solution 함수를 작성하시오. dfs def solution(n, computers): answer = 0 visited = [False] * n for computer in range(n): if ..

728x90