728x90
반응형

2024/02 7

[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

[programmers]python 12909 올바른 괄호

# 올바른 괄호 # 괄호가 바르게 짝지어졌다는것은 () 로 이루어져야 한다. # 올바르면 true 다르면 false # ( 가 나온만큼 )가 안나오면 False # 테스트 케이스는 통과인데 뭐가 안되지...? def solution(s): le=0 # 왼 ri=0 # 오 # 일단 맨 앞뒤가 틀리면 떙 if s[0] !="(": return False elif s[-1] != ")": return False # 순서대로 나온만큼 for i in s: if i=="(": le+=1 elif i==")": ri+=1 # le가 1번 나오고 ri==le 가 같고 ri+le의 갯수가 s의 길이와 같다면? if le>=1 and ri==le and ri+le==len(s): return True elif ri ==..

Algorithm/Python 2024.02.06

[programmers]python 12951 JadenCase

# JadenCase 문자열 만들기 # 모든단어 첫글자가 대문자로 # 문자열을 공백으로 나누고 원소를 슬라이싱해서 upper랑 lower로 변환? def solution(s): answer = '' ans=[] sp=s.split(' ') # print(s,len(s)) for i in range(len(sp)): answer+=sp[i][0].upper() # 앞글자 대문자 answer+=sp[i][1:].lower() # 전체 소문자 ans.append(answer) answer='' # print(s) answer=' '.join(ans) # join으로 합치기 return answer # 열심히 풀었지만... 답은 간단했다,... python ㅁㅊㄴ # title() : 문장의 모든 단어의 첫 글..

Algorithm/Python 2024.02.05
728x90
반응형