알고리즘(Python) (8) 썸네일형 리스트형 [프로그래머스 LV.2] 점프와 순간 이동 https://school.programmers.co.kr/learn/courses/30/lessons/12980 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 전체 코드 def solution(n): ans = 0 while n != 1: if n % 2 == 1: ans += 1 n -= 1 n = n / 2 return ans+1 알고리즘 설명 반복문을 사용하였다. 코드 설명 배터리를 가장 많이 아낄 수 있는 방법은 1 만큼씩 이동하고 나머지는 순간이동으로 이동하는 방법이라고 생각했다. 따라서 이동해야 할 거리를 2로 나누면서 나누어 떨어지지 않는 .. [프로그래머스 LV.2] 영어 끝말잇기 https://school.programmers.co.kr/learn/courses/30/lessons/12981 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 전체 코드 import math def solution(n, words): spend = [] for i, word in enumerate(words): spend.append(word) if len(spend) > 1: if (spend[-2][-1] != spend[-1][0]) or spend.index(word) != len(spend) -1 : return [n if (i+1) % n =.. [프로그래머스 LV.2] 피보나치 수 https://school.programmers.co.kr/learn/courses/30/lessons/12945 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 전체 코드 import sys sys.setrecursionlimit(100000) from collections import defaultdict def solution(n): d = defaultdict(int) d[0] = 0 d[1] = 1 d[2] = 1 def fibo(n): if n [프로그래머스 LV.2] 다음 큰 숫자 https://school.programmers.co.kr/learn/courses/30/lessons/12911?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 전체 코드 def solution(n): answer = 0 binN = bin(n) while True: n += 1 if bin(n)[2:].count("1") == binN.count("1"): answer = n break return answer 알고리즘 설명 Python 내부 함수인 bin()과 list 내장 함수인 count()를 사용하였다. 코드 설명 .. [프로그래머스 LV.2] 더 맵게 https://school.programmers.co.kr/learn/courses/30/lessons/42626 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 전체 코드 from heapq import * def solution(scoville, K): answer = 0 heapify(scoville) while(scoville[0] 알골 3번(Python) - 최소공배수, 최대공약수 구하기 (백준 2609번) 출처 https://www.acmicpc.net/problem/2609 2609번: 최대공약수와 최소공배수 첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다. www.acmicpc.net 두 개의 자연수를 입력받아 최대 공약수와 최소 공배수를 출력하는 프로그램을 작성하시오. 전체 코드 def euclid(num1, num2): tmp = num1%num2 if tmp == 0: return num2 else: return euclid(num2, tmp) inputNum = list(map(int,input().split())) inputNum.sort minNum = euclid(inputNum[0], inputNum[1]) maxNum = .. 알골 2번(Python) - OX 퀴즈(백준 8958번) 출처 https://www.acmicpc.net/problem/8958 8958번: OX퀴즈 "OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수 www.acmicpc.net "OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수는 3이 된다. "OOXXOXXOOO"의 점수는 1+2+0+0+1+0+0+1+2+3 = 10점이다. OX퀴즈의 결과가 주어졌을 때, 점수를 구하는 프로그램을 작.. 알골 1번(Python) - 선택 정렬 & 이진 검색 1부터 1024까지의 정수 중 랜덤하게 10개를 뽑아 배열을 생성, 선택정렬으로 정렬한다. 이후 사용자에게서 정수를 입력받고 배열에서 그 정수와 일치하는 값의 index를 반환하는 알고리즘을 작성하였다. 일치하는 값이 없다면 찾는 수가 없습니다. 라는 문구가 뜨도록 작성하였다. 전체 코드 import random def sorting(randomList): for i in range(len(randomList)-1): for j in range(i,len(randomList)): if randomList[i]>randomList[j]: randomList[i],randomList[j] = randomList[j],randomList[i] def search(num, list, start, end): de.. 이전 1 다음