PS/프로그래머스27 프로그래머스 튜플 python 1. 문제 2. 풀이 1) string을 list 형태로 만든다 2) 원소를 크기 순서대로 정렬해서 앞의 집합에 없는 원소를 추가한다. 3. 구현 1) .split을 잘 써서 string을 분리하면 훨씬 깔끔해짐. 2) 원소의 크기로 정렬할 때는 .sort(key=len) 3) 원소가 있는 지 아닌 지 확인할 때 for item (not) in list: 하면 된다. 내풀이 def solution(s): answer = [] tmp=[] tmpList =[] tmpNum=0 for ch in s: if ch.isdigit(): tmpNum=int(ch)+tmpNum*10 if ch==',': if tmpNum == 0: continue else: tmp.append(tmpNum) tmpNum=0 if c.. 2021. 6. 13. 프로그래머스 문자열압축 python 1. 문제 2. 풀이 단순구현 3. 구현 > TypeError: string indices must be integers 문제는tmpStr = s[0, int(step)] 이었다. string indice를 하려면 다음과 같이 적어야한다. tmpStr = s[0:step] def solution(s): answer = 0 le = len(s) for step in range(1, le+1): cnt=0 tmpStr = s[0, int(step)] for i in range(0, le+1, step): if tmpstr == s[i, i+int(step)]: cnt+=1 else: if cnt==1: answer+=tmpStr else: answer+=cnt answer+=tmpStr cnt=0 retur.. 2021. 6. 12. 프로그래머스 타겟넘버 python, BFS로 풀기 1. 문제 2. 설계 dfs와 bfs 둘 다 사용 가능 3. 알고리즘 dfs bfs queue memo 4. 구현 먼저 조금 더 익숙한 BFS로 다음과 같이 짰다. 1) - tuple 대신에 list 형태로 append해도 괜찮다. - while q: - +1 -1이 아니라 numbers에서 idx만큼 빼와야함. - append를 +1 -1 둘 다 해야 함 def solution(numbers, target): answer = 0 depth = len(numbers) d_cnt =1 q = [] q.append((numbers.pop(0),d_cnt)) while len(q): cur = q.pop(0) if cur[1]!=depth: d_cnt+=1 q.append((cur[0]+1, d_cnt)) q.. 2021. 6. 10. 프로그래머스 기능개발 python 1.문제 2. 설계 3. 알고리즘 4. 구현 총체적 난국.. 진짜 한동안 안했더니 왜 이렇게 되는 지 이해하는 데에 한참 걸렸다. 그래도 깔끔하게 이해하고 나니 내가 어떤 부분의 코딩을 잘못하고 있는 지 명확하게 이해했다. 통과답 def solution(progresses, speeds): answer = [] days = 0 count =0 while(len(progresses)): if(progresses[0]+days*speeds[0]>=100): progresses.pop(0) speeds.pop(0) count+=1 else: if count>0: answer.append(count) count=0 days+=1 answer.append(count) return answer import queu.. 2021. 6. 10. 이전 1 2 3 4 5 6 7 다음 반응형