본문 바로가기

728x90

Algorithm

(55)
[Programmers] 올바른 괄호 Description 괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어 "()()" 또는 "(())()" 는 올바른 괄호입니다. ")()(" 또는 "(()(" 는 올바르지 않은 괄호입니다. '(' 또는 ')' 로만 이루어진 문자열 s가 주어졌을 때, 문자열 s가 올바른 괄호이면 true를 return 하고, 올바르지 않은 괄호이면 false를 return 하는 solution 함수를 완성해 주세요. Solve def solution(s): answer = True stack = list() open_bracket = '(' for x in s: if x == open_bracket: stack.append(x) else: if sta..
[Programmers] 최댓값과 최솟값 Description 문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최솟값과 최댓값을 찾아 이를 "(최솟값) (최댓값)"형태의 문자열을 반환하는 함수, solution을 완성하세요. 예를 들어 s가 "1 2 3 4"라면 "1 4"를 리턴하고, "-1 -2 -3 -4"라면 "-4 -1"을 리턴하면 됩니다. 제한 조건 s에는 둘 이상의 정수가 공백으로 구분되어 있습니다. Solve 리스트가 아닌 문자열로 이루어진 숫자의 나열을 입력받아 최솟값과 최대값을 구하는 문제이다. 01. MIN, MAX 함수 이용하기 처음엔 min, max 함수를 이용한 다음 방식으로 풀었다. def solution(s): split_of_space = [int(x) for x in s.spli..
Python Recursive Snippet Code 하향식 카운팅 def count_down(n): """ 10부터 1로 감소하는 재귀함수 """ print(n) if n == 1: return returncount_down(n - 1) 상향식 카운팅 def count_up(n): """ 1부터 10까지 증가하는 재귀함수 """ print(n) if n == 10: return return count_up(n + 1) 배열의 요소를 제곱하는 재귀함수 def double_array(array, index): """배열의 요소를 제곱하는 재귀함수 """ if index == len(array): return array array[index] *= 2 return double_array(array, index + 1) array = [1, 2, 3, 4, 5]..
[Programmers] 평행 Description 점 네 개의 좌표를 담은 이차원 배열 dots가 다음과 같이 매개변수로 주어집니다. [[x1, y1], [x2, y2], [x3, y3], [x4, y4]] 주어진 네 개의 점을 두 개씩 연결했을 때, 두 직선이 평행이 되는 경우가 있으면 1을 없으면 0을 return 하도록 solution 함수를 완성해보세요. Solve 문제를 읽었을 때 두 점 사이의 거리구나 하면서 직선의 방정식 어쩌고 가 불현듯 떠올랐다. 언제 배웠는지도 잘 기억 안 나는 내용이라 관련된 내용을 찾아보니 직선의 위치가 y의 기울기에 따라 "평행", "일치", "수직", "한 점에서 만난다"라는 조건이 있어서 이에 해당하는 조건을 코드로 구현하면 통과하겠거니 했는데 예상과 달랐다. 처음 생각했던 접근법은 단순히..
[Snippet] 정수의 자리 수 구하기 Description 아래 코드는 Python에서 정수의 자리 수 구하기에 사용될 수 있는 코드 모음이다. While loop 을 이용한 방식 arr = 299 while arr != 0: divide = arr % 10 print(divide) arr //= 10 # result # 9 # 9 # 2 list와 str 를 이용한 방식 arr = 299 print(list(str(arr))) # result # ['2', '9', '9'] join과 slicing을 이용한 방식 arr = 299 print(' '.join(str(arr)[0:len(str(arr)):1]) # result # 2 9 9 While loop를 이용한 방식 - 자리수만 줄여가나기 n = 100 while n: print(n)..
[Programmers] 7의 갯수 구하기 Description 머쓱이는 행운의 숫자 7을 가장 좋아합니다. 정수 배열 array가 매개변수로 주어질 때, 7이 총 몇 개 있는지 return 하도록 solution 함수를 완성해보세요. 입력 : [7, 77,17] 출력: 4 Solve 입력받은 리스트에서 원소를 하나씩 꺼내서 정수의 자리수별로 쪼갠 다음 각 자리수가 7로 나누어 떨어지는지를 검사해서 푸는 방법으로 접근했다. 주요 포인트는 7로 나눈다는 개념을 체크할 때 발생하는 상황은 7을 7로 나눠도 0이고 0을 7로 나눠도 0이라는 점이다 그러니 각 자리의 수가 0일때는 continue를 걸어 count를 하지 말아야 했다. Code def solution(array): counter = 0 for arr in array: while arr ..
[Programmers] 옹알이 - 다시 풀어보기 Description https://jakpentest.tistory.com/228d [Programmers] 옹알이 Description 머쓱이는 태어난 지 6개월 된 조카를 돌보고 있습니다. 조카는 아직 "aya", "ye", "woo", "ma" 네 가지 발음을 최대 한 번씩 사용해 조합한(이어 붙인) 발음밖에 하지 못합니다. 문자열 배열 babb jakpentest.tistory.com 에서 다른 해결 방법은 없을까 생각해서 시도하게 되었다. 풀이 방법 위에 첨부한 링크 내용 중에서도 알 수 있듯 문제를 처음 풀었을 때는 단순하게 가능한 모든 경우의 수를 고려하고 그 안에서 매칭 되는 게 있으면 counter를 올리는 방식으로 풀었다. 이 풀이 방법은 단순하고 직관적이라 생각했는데 공간을 너무 낭..
[Programmers] 옹알이 Description 머쓱이는 태어난 지 6개월 된 조카를 돌보고 있습니다. 조카는 아직 "aya", "ye", "woo", "ma" 네 가지 발음을 최대 한 번씩 사용해 조합한(이어 붙인) 발음밖에 하지 못합니다. 문자열 배열 babbling이 매개변수로 주어질 때, 머쓱이의 조카가 발음할 수 있는 단어의 개수를 return 하도록 solution 함수를 완성해주세요. 입출력 예시 입력: ["aya", "yee", "u", "maa", "wyeoo"] 결과: 1 입력: ["ayaye", "uuuma", "ye", "yemawoo", "ayaa"] 결과: 3 풀이 방법 정말 단순하게 풀었다. 조카는 아직 "aya", "ye", "woo", "ma" 네 가지 발음을 최대 한 번씩 사용해 조합한(이어 붙인)..

728x90
반응형