프로그래머스(파이썬)
시점암호★★ → 순환(%) + 아스키 코드 + 문자열에서 find() 메서드+list(문자열)
나의 풀이 def solution(s, n): result="" answer=list(s) upper="ABCDEFGHIJKLMNOPQRSTUVWXYZ" lower="abcdefghijklmnopqrstuvwxyz" for i in answer: if i ==" ": result+=" " elif i.isupper(): result+=upper[((upper.find(i))+n)%26] else: result+=lower[((lower.find(i))+n)%26] return result ▶ list(문자열) 메서드를 사용하는 경우 문자열이 한 글자 단위로 분리되어 리스트 형태로 저장된다. ▶ 문자열에서 find()메서드는 문장열인 매개변수를 찾아서 인덱스를 반환해 준다. ▶ 순환하기 위해서는 % 연산자..
예산→ 미리 전부 더하고 비교하기 +pop()★
나의 풀이 def solution(d, budget): cnt = 0 d.sort() for i in d: budget-=i if budget
3진법 뒤집기★★→int('숫자문자열', n진수):n진수를 10진수로 전환
나의 풀이 def solution(n): tmp="" while(n!=0): tmp+=str(n % 3) n=n//3 #print(tmp) 앞뒤 반전은 할 필요가 없다. answer=int(tmp, 3) return answer 보충학습 int( '숫자문자열', 변경하고 싶은 진법) #숫자 문자열을 10진법으로 변경하고 싶은 경우 num = '212' base = 10 answer = int(num, base) print(answer) #출력 결과: 212 ▶ int("숫자문자열", n진수): n진수로 표현된 숫자문자열을 10진수로 변환 후 반환한다.
이상한 문자 만들기★★ - 이중 for문으로 긴 문장 한글자씩 접근하기 + idx변수를 이용한 인덱스 통제 + 문자열 합치기
나의 풀이 def solution(s): s1=list(s) print(s1) result="" idx =0 for i in range (len(s1)): if s1[i] == ' ': result+=" " idx =0 else: if idx % 2 ==0: result+=s1[i].upper() else: result+=s1[i].lower() idx+=1 return result ▶ idx 변수를 통해서 인덱스를 별도로 관리하자 ▶ idx+=1을 통해서 후위 연산을 만들자 다른 사람의 풀이 def solution(s): a=[] s=s.split(" ") for i in range(len(s)): for j in range(len(s[i])): if j%2==0: a.append(s[i][j].upp..