풀이 9

프로그래머스 숫자 문자열과 영단어(파이썬)

영단어 별로 딕셔너리로 값을 지정하고 주어진 문자열은 숫자, 3글자, 4글자, 5글자중 하나임으로 케이스를 나눠서 숫자로 바꿔준다. def solution(s): answer = 0 b=[] a = {"zero":0, "one": 1, "two": 2, "three": 3, "four": 4, "five":5, "six":6, "seven":7, \ "eight": 8, "nine": 9} #영단어 별로 숫자로 정리 while True: if s[:3] in a: #3글자일때 b.append(str(a[s[:3]])) #3글자에 해당하는 a값을 b에 추가 s=s[3:] #s는 3번째 이후부터 elif s[:4] in a: #4글자일때 b.append(str(a[s[:4]])) s=s[4:] elif s[..

leetcode 1281 풀이(파이썬, 스위프트)

모르는게 많아서 블로그에 많은걸 포스팅하게 된 문제... map과 reduce에 익숙해지자... (파이썬으론 익숙해서 쉽다 파이썬짱) 숫자를 이루는 숫자들을 다뤄야하기 때문에 숫자를 그 숫자를 이루는 숫자들의 배열로 만들었고 for문으로 모두 곱한것에서 더한것을 빼줬다. 스위프트: class Solution { func subtractProductAndSum(_ n: Int) -> Int { var a = String(n).map{Int(String($0))!} return a.reduce(1){$0*$1} - a.reduce(0){$0+$1} } } 파이썬: class Solution: def subtractProductAndSum(self, n: int) -> int: n=[x for x in str..

리트코드 풀이 2022.02.07

리트코드 771 풀이(파이썬, 스위프트)

stones문자열에 있는 문자가 jewel에 있으면 만들어둔 변수에 1을 더해줌 파이썬: class Solution: def numJewelsInStones(self, jewels: str, stones: str) -> int: jewels = [x for x in jewels] cnt=0 for i in range(len(stones)): if stones[i] in jewels: cnt+=1 return cnt 스위프트: class Solution { func numJewelsInStones(_ jewels: String, _ stones: String) -> Int { var a = 0 for s in stones where jewels.contains(s){ a+=1 } return a } }

리트코드 풀이 2022.02.06

코드포스 131A 풀이

a=input() a=[x for x in a] flag= True if a[0].islower() == True: for i in range(len(a)-1): if a[i+1].islower()==True: flag = False for j in range(len(a)-1): if flag: a[j+1]=a[j+1].lower() if flag: a[0]=a[0].upper() else: for i in range(len(a)-1): if a[i+1].islower()==True: flag=False for i in range(len(a)): if flag: a[i]=a[i].lower() print("".join(a)) 문제가 첫번째만 소문자고 나머지는 다 대문자일 경우와 전부 대문자일 경우만 수정..

코드포스 풀이 2022.01.31

코드포스 1352A 풀이

t=int(input()) for _ in range(t): a=input() x=[] cnt=0 y=[] if len(a)==1 or len(a)==5: print(1) print(a) else: for i in reversed(range(len(a))): if a[i]!="0": x.append(a[i]) cnt+=1 y.append(cnt) else: cnt+=1 print(len(x)) for j in range(len(x)): print(int(x[j])*(10**(y[j]-1)), end=' ') print() 정수를 5309이라 하면 총 3개(5000, 300, 9)로 쪼개는 문제이다. 테스트 케이스 t에 따라 정수를 문자열로 우선 인풋 a로 받아준다. a는 10**4까지 임으로 a의 길이는..

코드포스 풀이 2022.01.29