반응형

2021/01 29

[알고리즘] 2019 KAKAO BLIND RECRUITMENT - 무지의 먹방 라이브

2019 KAKAO BLIND RECRUITMENT - 무지의 먹방 라이브 무지의 먹방 라이브 * 효율성 테스트에 부분 점수가 있는 문제입니다.평소 식욕이 왕성한 무지는 자신의 재능을 뽐내고 싶어 졌고 고민 끝에 카카오 TV 라이브로 방송을 하기로 마음먹었다. 그냥 먹방을 하면 다른 방송과 차별성이 없기 때문에 무지는 아래와 같이 독특한 방식을 생각해냈다. 회전판에 먹어야 할 N 개의 음식이 있다. 각 음식에는 1부터 N 까지 번호가 붙어있으며, 각 음식을 섭취하는데 일정 시간이 소요된다. 무지는 다음과 같은 방법으로 음식을 섭취한다. 무지는 1번 음식부터 먹기 시작하며, 회전판은 번호가 증가하는 순서대로 음식을 무지 앞으로 가져다 놓는다. 마지막 번호의 음식을 섭취한 후에는 회전판에 의해 다시 1번 음..

[알고리즘] 이것이 취업을 위한 코딩 테스트다 with 파이썬 - 만들 수 없는 금액

이것이 취업을 위한 코딩 테스트다 with 파이썬 - 만들 수 없는 금액 내 풀이 import sys from itertools import combinations input = sys.stdin.readline n = input() coins = list(map(int, input().split())) coins.sort() result = 0 arr = [0] * (sum(coins)+1) for i in range(1, len(coins)+1): for combi in combinations(coins, i): arr[sum(combi)] += 1 for i in range(1, len(arr)): if arr[i] == 0: result = i break print(result) 내가 작성한 코드..

[알고리즘] 이것이 취업을 위한 코딩 테스트다 with 파이썬 - 문자열 뒤집기

url: https://www.acmicpc.net/problem/1439 내 풀이 만일 "0001100"이라는 문자열이 있다면 이를 ["000", "00"]와 ["11"]로 만들어서, 즉 0으로 구성된 문자열만을 포함한 zero_list와 1로만 구성된 문자열을 포함한 one_list를 만든다. 그러고 나서 요소가 더 적은(["11"]) 리스트를 선택하여 해당 리스트의 길이를 출력한다. import sys input = sys.stdin.readline s = input() zero_list = [] one_list = [] result = 0 tmp = s[0] for i in range(len(s)-1): if s[i] == s[i+1]: tmp += s[i+1] else: if '0'..

[알고리즘] 이것이 취업을 위한 코딩 테스트다 with 파이썬 - 볼링공 고르기

이것이 취업을 위한 코딩 테스트다 with 파이썬 - 볼링공 고르기 내 풀이 from itertools import combinations import sys input = sys.stdin.readline n, m = map(int, input().split()) bowling_balls = list(map(int, input().split())) count = 0 for combi in combinations([i for i in range(1, n+1)], 2): if bowling_balls[combi[0]-1] != bowling_balls[combi[1]-1]: count += 1 print(count)

[알고리즘] 이것이 취업을 위한 코딩 테스트다 with 파이썬 - 곱하기 혹은 더하기

이것이 취업을 위한 코딩 테스트다 with 파이썬 - 곱하기 혹은 더하기 내 풀이 from collections import deque s = input() s = list(map(int,s)) q = deque(s) result = 0 while True: if len(q) first + second: q.appendleft(first*second) else: q.appendleft(first+second) print(q.pop()) 책 풀이 data = input() result = int(data[0]) for i in range(1, len(data)): num = int(data[i]) if num

[알고리즘] 프로그래머스 - 카펫

url: https://programmers.co.kr/learn/courses/30/lessons/42842 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 갈색으로 색칠된 격자의 개수는 기억했지만, 전체 카펫의 크기는 기억하지 못했습니다. Leo가 본 카펫에서 갈색 격자의 수 brown, 노란색 격자의 수 yellow가 매개변수로 주어질 때 카펫의 가로, 세로 크기를 순서대로 배열에 담아 return 하도록 solution 함수를 작성해주세요. 제한사항 갈색 격자의 수 brown은 8 이상 5,000 이하인 자연수입니다. 노란색 격자의 수 yellow는 1 ..

[알고리즘] 프로그래머스 - 타겟 넘버

url: https://programmers.co.kr/learn/courses/30/lessons/43165 n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+1 = 3 +1+1-1+1+1 = 3 +1+1+1-1+1 = 3 +1+1+1+1-1 = 3사용할 수 있는 숫자가 담긴 배열 numbers, 타겟 넘버 target이 매개변수로 주어질 때 숫자를 적절히 더하고 빼서 타겟 넘버를 만드는 방법의 수를 return 하도록 solution 함수를 작성해주세요. 제한사항 주어지는 숫자의 개수는 2개 이상 20개 이하입니다. ..

[알고리즘] 월간 코드 챌린지 시즌1 - 쿼드압축 후 개수 세기

url: https://programmers.co.kr/learn/courses/30/lessons/68936 0과 1로 이루어진 2n x 2n 크기의 2차원 정수 배열 arr이 있습니다. 당신은 이 arr을 쿼드 트리와 같은 방식으로 압축하고자 합니다. 구체적인 방식은 다음과 같습니다. 당신이 압축하고자 하는 특정 영역을 S라고 정의합니다. 만약 S 내부에 있는 모든 수가 같은 값이라면, S를 해당 수 하나로 압축시킵니다. 그렇지 않다면, S를 정확히 4개의 균일한 정사각형 영역(입출력 예를 참고해주시기 바랍니다.)으로 쪼갠 뒤, 각 정사각형 영역에 대해 같은 방식의 압축을 시도합니다. arr이 매개변수로 주어집니다. 위와 같은 방식으로 arr을 압축했을 때, 배열에 최종적으로 남는 0의 개수와 1의 ..

반응형