본문 바로가기

728x90

Algorithm/Programmers

(40)
[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..
[Programmers] 평행 Description 점 네 개의 좌표를 담은 이차원 배열 dots가 다음과 같이 매개변수로 주어집니다. [[x1, y1], [x2, y2], [x3, y3], [x4, y4]] 주어진 네 개의 점을 두 개씩 연결했을 때, 두 직선이 평행이 되는 경우가 있으면 1을 없으면 0을 return 하도록 solution 함수를 완성해보세요. Solve 문제를 읽었을 때 두 점 사이의 거리구나 하면서 직선의 방정식 어쩌고 가 불현듯 떠올랐다. 언제 배웠는지도 잘 기억 안 나는 내용이라 관련된 내용을 찾아보니 직선의 위치가 y의 기울기에 따라 "평행", "일치", "수직", "한 점에서 만난다"라는 조건이 있어서 이에 해당하는 조건을 코드로 구현하면 통과하겠거니 했는데 예상과 달랐다. 처음 생각했던 접근법은 단순히..
[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" 네 가지 발음을 최대 한 번씩 사용해 조합한(이어 붙인)..
[Programmers] 1주차_부족한 금액 계산하기 새로 생긴 놀이기구는 인기가 매우 많아 줄이 끊이질 않습니다. 이 놀이기구의 원래 이용료는 price원 인데, 놀이기구를 N 번 째 이용한다면 원래 이용료의 N배를 받기로 하였습니다. 즉, 처음 이용료가 100이었다면 2번째에는 200, 3번째에는 300으로 요금이 인상됩니다. 놀이기구를 count번 타게 되면 현재 자신이 가지고 있는 금액에서 얼마가 모자라는지를 return 하도록 solution 함수를 완성하세요. 단, 금액이 부족하지 않으면 0을 return 하세요. Solution 처음 작성한 코드는 아래와 같다. 의식의 흐름대로 적긴 했는데 def solution(price, money, count): total_price = sum([x for x in range(price, count * p..
[Programmers] 2021 카카오 채용연계형 인턴십숫자 > 문자열과 영단어도움말 Description 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자릿수를 영단어로 바꾸는 예시입니다. 1478 → "one4seveneight" 234567 → "23four5six7" 10203 → "1zerotwozero3" 이렇게 숫자의 일부 자릿수가 영단어로 바뀌어졌거나, 혹은 바뀌지 않고 그대로인 문자열 s가 매개변수로 주어집니다. s가 의미하는 원래 숫자를 return 하도록 solution 함수를 완성해주세요. Notes 알고리즘 문제는 문제를 이해하는 과정도 힘들다. 어찌어찌 이해를 하고 보니 문제 풀이 계획을 다음과 같이 세웠다. 1. number_di..

728x90
반응형