알고리즘/기타 사이트 알고리즘

2019 카카오 개발자 겨울 인턴십 크레인 인형뽑기 게임 문제 : https://programmers.co.kr/learn/courses/30/lessons/64061 생각 단순하게 리스트를 잘 활용하면 되는 문제다. 헷갈린다면 그림을 그려보자. def solution(board, moves): resultList = [] # 인형이 넣어지는 상자 리스트 answer = 0 for choiceNum in moves: for rows in board: if rows[choiceNum-1] != 0: resultList.append(rows[choiceNum-1]) # print("resultList에 뭐가 추가됨 : ", resultList) rows[choiceNum-1] = 0 if len(result..
2018 KAKAO BLIND RECRUITMENT 비밀지도 문제 문제 : https://programmers.co.kr/learn/courses/30/lessons/17681 생각 지도 두개를 통해 하나의 결과를 도출해야 한다. 각 행이 이진수를 나타내면서 지도의 길이에 따라 각 행을 이루는 요소의 개수가 정해진다. arr1, arr2가 두 개의 지도를 의미할 때, 각 배열의 요소들이 각 지도의 한 행을 의미한다. 따라서 십진수를 이진수로 바꿔주는 함수가 필요하다. # 2진수 구하는 함수 구하기 def trans(N, num): result = "" number = num while number > 0: result = str(number % 2) + result number //= 2 if len(r..
문제 1. 피보나치 수열에서 4백만 이하이면서 짝수인 항의 합 출처 : https://euler.synap.co.kr/problem=2 피보나치(Fibonacci) 수열의 각 항은 바로 앞의 항 두 개를 더한 것이다. 1과 2로 시작하는 경우 이 수열은 아래와 같다. 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ... 4백만 이하의 짝수 값을 갖는 모든 피보나치 항을 더하면 얼마가 될까? 문제 풀이 fiboSum = 2 fibo_1 = 1 fibo_2 = 2 fibo_3 = 0 while(True): if(fibo_3 > 4000000): break fibo_3 = fibo_1 + fibo_2 print("fibo_3", fibo_3) if(fibo_3 % 2 == 0): fiboSum..
하노이의 탑(Tower of Hanoi) 첫번째 기둥을 A, 두번째 기둥을 B, 세번째 기둥을 C 작은 원반부터 큰 원반의 순서대로 1, 2, 3, ,,, 이라고 칭한다고 가정할 때. hanoi(N, A, B, C)는 hanoi()함수를 통해 N개의 원반을 A, B, C기둥을 통해 이동시킨다고 할때 사용되는 함수이다. // JavaScript var hanoi = function(N, from, other, to) { if(N===1){ div1.innerHTML += '원판[' + N + '] : ' + from + "--------->" + to + " "; } else { hanoi(N-1, from, to, other); div1.innerHTML += '원판[' + N + '] : ' + fro..
문제 출처 링크 클릭시 맥의 경우 command, 윈도우의 경우 ctrl을 누르면서 클릭하면 새창에서 링크오픈이 가능합니다. 테스트 케이스를 모두 통과하지 못함(2019.08.13) # 회문인지, 유사회문인지, 둘다 아닌지 확인하는 함수. 각각 0, 1, 2로 출력한다. def isPalindrome(Str): # 회문인 경우 if Str == Str[::-1]: return 0 # 회문이 아닌 경우 else: count = 0 for i in range(len(Str)): NewStr = Str[:i]+Str[i+1:] if NewStr == NewStr[::-1]: count += 1 # count가 증가했다면 유사회문이 있었다는 것이므로 1을 리턴 if count > 0: return 1 # cou..
문제 출처 링크 클릭시 맥의 경우 command, 윈도우의 경우 ctrl을 누르면서 클릭하면 새창에서 링크오픈이 가능합니다. 테스트 케이스를 모두 통과하지 못함(2019.08.12) Number = int(input()) NumList = [] count = 1 for i in range(Number): NextNum = int(input()) NumList.append(NextNum) for j in range(Number-1): if NumList[Number-1] < NumList[j] : count += 1 print(count) 문제 채점기준에 나와있는 각 테스트 케이스에 대한 배점정보와 제약조건에 대한 문제파악이 안됨 반례1) 입력값 6, 7, 9, 7, 6, 4, 6인 경우.. 6번막대기보다..
sovelop
'알고리즘/기타 사이트 알고리즘' 카테고리의 글 목록