목록2024/04/30 (4)
연습장
b = 10 , y = 2 결국 전체 합하면 12개 이고 이는 4*3 ( 가로가 더 길다) 로 볼 수 있음 8 , 1 => 8+1 = 3*3 24,24 => 24+24 => 8*6 ... ? 반례 18,6 / 16,8 모두 합이 24 가 되며 이는 6*4 , 8*3 등 다양한 경우가 나올 수 있다. 따라서 노란색의 배치를 먼저 고려하고 => 4*2거기서 상하좌우가 1씩 확장된 크기 => (4+1+1)*(2+1+1) 가 전체 갯수 16+8 과 같은지 확인 def solution(brown, yellow): answer = [] for i in range(1,yellow+1): # yellow의 크기 확인 if yellow % i == 0..
n 번째 피보나치 수 가 뭔지 구하는 문제 0번째부터 .. 0 1 1 2 3 5 8 13 ... def solution(n): num0 = 0 num1 = 1 # 임시저장 tmp = 0 # 반복횟수 for i in range(n-1): tmp = num1 num1 = num0 + num1 num0 = tmp return num1%1234567 문제에서 1234567 의 나머지를 구하라고 하여서 다음과 같이 진행위와 같이 하지 않을경우 런타임 에러가 발생함 .. 자릿수가 너무 길어져서 일까 ..
2진법 기준 1의 갯수가 같으면서 , 해당 숫자보다 큰 숫자중, 가장 작은 숫자를 구하는 문제 78 : 1001110 // 4개79 : 1001111 // 5개80 : 1010000 // 2개81 : 1010001 // 3개82 : 1010010 // 3개83 : 1010011 // 4개84 : 1010100 // 3개85 : 1010101 // 4개86 : 1010110 // 4개87 : 1010111 // 5개88 : 1011000 // 3개89 : 1011001 // 4개90 : 1011010 // 4개 78 -> 83 -> 85 -> 86 -> 89 -> 90 .. ??? 모르겠다 10진수를 2진수로 변환하였을때 1의 갯수를 새는 함수 num2_count1 를 정의하고 받은 숫자를 1씩 증가..
어떤 숫자 n 에 대하여 연속하는 자연수의 합으로 해당 숫자가 몇개 나오는지 확인 하는 문제 1+2+3+4+5 = 152+3+4+5+6 > 15 ... x 3+4+5+6 > 15 ... x ... 위와 같이 1부터 하나씩 더하면서 n 과 비교하는 방법이 될 수 있으나 n/2 이후의 구간부터는 사실상 의미없이 버려지는 부분이다. 7+8 = 15 .. o 8+9 > 15 .. x9+10 > 15 .. x... 15 = 15 ... o 따라서 이를 반영하기 위해서 다음과 같이 코드를 짜보았다. n 이 홀수 / 짝수 일 경우에 따라서 그 절반 or 절반을 반올림 한 숫자부터1씩 감소하며 연속하는 숫자의 합을 구하도록 하였다. def solution(n): # 자기자신 answer..