양궁게임 - 파이썬
·
알고리즘/프로그래머스
문제 설명 카카오배 양궁대회가 열렸습니다. 라이언은 저번 카카오배 양궁대회 우승자이고 이번 대회에도 결승전까지 올라왔습니다. 결승전 상대는 어피치입니다. 카카오배 양궁대회 운영위원회는 한 선수의 연속 우승보다는 다양한 선수들이 양궁대회에서 우승하기를 원합니다. 따라서, 양궁대회 운영위원회는 결승전 규칙을 전 대회 우승자인 라이언에게 불리하게 다음과 같이 정했습니다. 어피치가 화살 n발을 다 쏜 후에 라이언이 화살 n발을 쏩니다. 점수를 계산합니다. 과녁판은 아래 사진처럼 생겼으며 가장 작은 원의 과녁 점수는 10점이고 가장 큰 원의 바깥쪽은 과녁 점수가 0점입니다. 만약, k(k는 1~10사이의 자연수)점을 어피치가 a발을 맞혔고 라이언이 b발을 맞혔을 경우 더 많은 화살을 k점에 맞힌 선수가 k 점을 ..
양과늑대 - 파이썬
·
알고리즘/프로그래머스
문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/92343 문제 설명 2진 트리 모양 초원의 각 노드에 늑대와 양이 한 마리씩 놓여 있습니다. 이 초원의 루트 노드에서 출발하여 각 노드를 돌아다니며 양을 모으려 합니다. 각 노드를 방문할 때 마다 해당 노드에 있던 양과 늑대가 당신을 따라오게 됩니다. 이때, 늑대는 양을 잡아먹을 기회를 노리고 있으며, 당신이 모은 양의 수보다 늑대의 수가 같거나 더 많아지면 바로 모든 양을 잡아먹어 버립니다. 당신은 중간에 양이 늑대에게 잡아먹히지 않도록 하면서 최대한 많은 수의 양을 모아서 다시 루트 노드로 돌아오려 합니다. 예를 들어, 위 그림의 경우(루트 노드에는 항상 양이 있습니다) 0번 노드(루트..
[소수 판별] - 소수 판별 알고리즘의 성능
·
알고리즘/자료구조 개념 정리
소수 판별 알고리즘 관련해서 정리를 하려고합니다. 기본적인 소수 판별 알고리즘 def get_prime_nums(n): for i in range(2,x): if x % i == 0: return False return True 에라토스테네스의 체 소수 판별 알고리즘 def get_prime_nums(n): prime = [True] * n prime[0], prime[1] = False, False for i in range(2, n+1): if prime[i] == True: j = 2 while i * j
삼각 달팽이 - 파이썬
·
알고리즘/프로그래머스
문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/77885 문제 설명 정수 n이 매개변수로 주어집니다. 다음 그림과 같이 밑변의 길이와 높이가 n인 삼각형에서 맨 위 꼭짓점부터 반시계 방향으로 달팽이 채우기를 진행한 후, 첫 행부터 마지막 행까지 모두 순서대로 합친 새로운 배열을 return 하도록 solution 함수를 완성해주세요. 제한사항 n은 1 이상 1,000 이하입니다. 문제접근 방식 문제를 풀면서 늘 생각하는것이지만 이차원 배열 참 다루기가 어려운것 같다. 그럼에더 문제는 풀어야하기 때문에 해설을 해보겠습니다. 문제가 어렵다기 보다는 어디서 회전을 시켜야하고 방향이 어떻게 줄건지를 생각해 내는게 핵심인 문제입니다. 사실 저도 되는데로 ..
2개 이하로 다른 비트 - 파이썬
·
알고리즘/프로그래머스
문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/77885 문제 설명 양의 정수 x에 대한 함수 f(x)를 다음과 같이 정의합니다. x보다 크고 x와 비트가 1~2개 다른 수들 중에서 제일 작은 수 예를 들어, f(2) = 3 입니다. 다음 표와 같이 2보다 큰 수들 중에서 비트가 다른 지점이 2개 이하이면서 제일 작은 수가 3이기 때문입니다. 수비트다른 비트의 개수 2 000...0010 3 000...0011 1 f(7) = 11 입니다. 다음 표와 같이 7보다 큰 수들 중에서 비트가 다른 지점이 2개 이하이면서 제일 작은 수가 11이기 때문입니다. 비트다른 비트의 개수 7 000...0111 8 000...1000 4 9 000...1001 ..
괄호 회전하기 - 파이썬
·
알고리즘/프로그래머스
문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/76502 문제 설명 다음 규칙을 지키는 문자열을 올바른 괄호 문자열이라고 정의합니다. (), [], {} 는 모두 올바른 괄호 문자열입니다. 만약 A가 올바른 괄호 문자열이라면, (A), [A], {A} 도 올바른 괄호 문자열입니다. 예를 들어, [] 가 올바른 괄호 문자열이므로, ([]) 도 올바른 괄호 문자열입니다. 만약 A, B가 올바른 괄호 문자열이라면, AB 도 올바른 괄호 문자열입니다. 예를 들어, {} 와 ([]) 가 올바른 괄호 문자열이므로, {}([]) 도 올바른 괄호 문자열입니다. 대괄호, 중괄호, 그리고 소괄호로 이루어진 문자열 s가 매개변수로 주어집니다. 이 s를 왼쪽으로 x ..
cafe-jun12
cafe-jun12