본문 바로가기
728x90

Algorithm/Python82

[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")) #.. 2024. 4. 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 2024. 4. 15.
[programmers] python 120851 숨어있는 숫자의덧셈(1) # 숨어있는 숫자의 덧셈(1) # 매개변수안의 모든 자연수들의 합을 return # 자연수는 한자리 수 -> 이러면 반복문으로 하나씩 뺴는 방법? # 반복문으로 숫자인지 파악하는 isdigit() 사용해 검사 def solution(my_string): answer = 0 # 반복문 for i in my_string: if i.isdigit(): answer+=int(i) return answer print(solution("aAb1B2cC34oOp")) #10 2024. 4. 9.
[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 2024. 3. 6.
[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.. 2024. 3. 5.
[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 2024. 2. 25.
728x90