728x90
반응형

Algorithm/Python 80

[programmers]python 120839 가위바위보

# 가위바위보 # 가위는 2 바위는 0 보는 5 # 가위 바위 보를 내는 순서대로 나타낸 문자열 rsp가 매개변수로 주어질 때, rsp에 저장된 가위 바위 보를 모두 이기는 경우를 순서대로 나타낸 문자열을 return하도록 solution 함수를 완성해보세요. # dictionary 구조 사용 def solution(rsp): answer='' for i in rsp: # print(i) ans={"2":"0","0":"5","5":"2"}.get(i) answer+=ans return answer # 획기적인 답이네? def sol(rsp): ans={"2":"0","0":"5","5":"2"} return ''.join(ans[i] for i in rsp) # print(solution("2")) #..

Algorithm/Python 2024.04.16

[programmers]python 120837 개미군단

# 개미군단 # 개미군단이 사냥을 나감 # 장군개미는 5의 공격력을, 병정개미는 3의 공격력을 일개미는 1의 공격력이 있음 # 사냥감의 체력 hp가 매개변수로 주어질 때, 사냥감의 체력에 딱 맞게 최소한의 병력을 구성하려면 몇 마리의 개미가 필요한지를 return def solution(hp): answer = 0 # hp가 0이 될때까지반복 while hp !=0: # 가장 적은 병력 구성을 위해 개미 나눔 if hp >= 5 : hp= hp-5 answer+=1 elif hp = 3: hp-=3 answer+=1 elif hp

Algorithm/Python 2024.04.15

[programmers]python 131701 연속 부분 수열 합의 개수

# 연속 부분 수열 합의 개수 # 원형 수열로 만들수 있는 합의 개수 # set 함수로 배열속 element 중복제거 def solution(elements): sum_set = set() length = len(elements) # 5 # 1~5 0~4 까지 반복 for i in range(1, length+1) : for j in range(length) : if j + i > length : sum_set.add(sum(elements[j:]) + sum(elements[:j+i-length])) else : sum_set.add(sum(elements[j:j+i])) return len(sum_set) print(solution([7,9,1,1,4])) # 18

Algorithm/Python 2024.03.06

[programmers]python 42842 카펫

# 카펫 # 전체 카펫의 크기 구하기 # 갈색은 겉 노랑은 안 #yellow = x * y #brown = 2*(x+y) + 4 #(brown - 4)//2 = x + y # def solution(brown, yellow): # answer = [] # total=brown+yellow # for i in range(1,total): # # print(i) # if total % i == 0 : # answer.append(i) # answer.reverse() # # print(answer) # # print(len(answer)//2) # for i in range(len(answer)//2+1): # a=answer.pop() # print(a) # if a*a==total: # return [a..

Algorithm/Python 2024.03.05

[programmers]python 12973 짝지어 제거하기

# 짝지어 제거하기 # 알파벳 소문자로 이루어진 문자열 2개가 붙어있는짝을 찾고 제거 # 모든 문자열 짝이 제거되면 종료 # 성공적 수행 =1 실패 =0 # 스택을 이용해 해결 # 스택은 나중에 들어오면 나중에 나감 def solution(s) : stack = [] for value in s : if not stack : stack.append(value) else : if stack[-1] == value : stack.pop() else : stack.append(value) if stack : return 0 return 1 print(solution("baabaa")) # 1 # b aa baa -> bbaa -> aa -> "" # print(solution("cdcd")) # 0

Algorithm/Python 2024.02.25

[programmers]python 12945 피보나치 수

# 피보나치 수 # F(0) = 0, F(1) = 1일 때, 1 이상의 n에 대하여 F(n) = F(n-1) + F(n-2) 가 적용되는 수 # F(2) = F(0) + F(1) = 0 + 1 = 1 # F(3) = F(1) + F(2) = 1 + 1 = 2 # F(4) = F(2) + F(3) = 1 + 2 = 3 # F(5) = F(3) + F(4) = 2 + 3 = 5 # 2이상 n이 입력될때 1234567 로 나눈 나머지를 리턴 def solution(n): answer = 0 F=0 x=0 y=1 # 피보나치수는 수를 두개의 변수에 담아서 구해보자 for i in range(2,n+1): # print(i) # 3이였을때는 한번 더 사용해줘야한다. if i==3: y=1 F=x+y # print..

Algorithm/Python 2024.02.16

[programmers]python 12924 숫자의 표현

# 숫자의 표현 # 자연수 n을 연속한 자연수들로 표현하는 방법이 여러개 # 연속한 수들로 더해야한다.. def solution(n): answer = 0 cnt=0 # 반복문을 돌려 순서대로 돌린다. # 시작은 1부터 for i in range(1,n+1): answer=0 answer+=i # 뒤에수를 더한다 n이 되면 멈추고 합이 n보다 크면 멈춘다 for j in range(i+1,n+1): answer+=j # print(i,j,"uuuiuiuiu") if answer==n: cnt+=1 # print(answer,"asdasdas") # answer=0 break elif answer>n: break if i==n: cnt+=1 return cnt print(solution(15)) # 4 =..

Algorithm/Python 2024.02.16

[programmers] python 12911 다음 큰 숫자

# 다음 큰 숫자 # n이 주어졌을때 n의 다음 큰 숫자 정의 # 이진수 변환시 1의 갯수가 같다. # 이진수 변환 함수를 이용해 풀자? def solution(n): x = n+1 # 다음 큰수 # 이진수 변환 bn=bin(n) # bn=bn.replace("0b","") bx=bin(x) # bx=bx.replace("0b","") # print(bn,bx,"bbbbbbb") # 1의 갯수 확인 cntn=bn.count("1") cntx=bx.count("1") # print(cntn,cntx,"cntcntcntcccc") # 1의 갯수가 다를때 1씩 더해서 다시 변환 while cntx != cntn: x+=1 bx=bin(x) cntx=bx.count("1") return x print(solut..

Algorithm/Python 2024.02.16

[programmers]python 70129 이진 변환 반복하기

# 이진 변환 반복하기 # 0 과 1로 이루어진 어떤 문자열 x 에 대해 이진 변환 # 변환 과정에서 x 가 1이 될때까지 변환 횟수와 사라진 0의 수 # 0을 제거한수를 이진 변환 def solution(s): delzero=0 # 0 삭제 횟수 cnt=0 # 변환 횟수 # s의 길이가 1이 될때까지 반복 while len(s) !=1: # s가 1이 아니라면 이진 변환을 시작 if s !="1": # 0이 s 에 있으면? 0을 제거하고 개수 체크 if "0" in s: delzero+=s.count("0") s=s.replace("0","") # 0을 제외한 길이를 리턴 s=len(s) # print(s) # 이진수로 변환 내장 함수 사용 s=bin(s) s=s.replace("0b","") cnt+..

Algorithm/Python 2024.02.07
728x90
반응형