본문 바로가기

분류 전체보기

프로그래머스 기능개발 progress 배열 안에 있는 각 값에 speeds 배열 안에 있는 각 값을 누적해주다가 progress 배열의 맨 앞에 있는 값이 100이상이 되면 count에 값을 1 올려주고 progress와 speeds에 있는 맨 앞의 값을 삭제한다.hundred 플래그를 사용한 이유는 while문을 돌면서 마구잡이로 answer 배열에 count를 삽입하지 않기 위해서다. 첫 while문에서 플래그는 False이지만 progress 배열에 값이 존재하면서 첫 값이 100이상이면 플래그는 True가 된다. 조건을 만족하지 않으면 while문을 빠져나온 뒤if hundred==True 문으로 가는데 플래그가 True면 그제서야 answer 배열에 count를 삽입하게 된다. def solution(progress..
프로그래머스 탑 배열의 오른쪽에서부터 시작.기준점은 x로 잡고 y로 하나씩 왼쪽 이동한다. 왼쪽에 있는 것이 기준점보다 크다면 신호를 받을 수 있으므로 신호를 보낸 x 인덱스로answer[x] = y+1을 해준다. 여기서 y는 신호를 받은 탑의 인덱스인데 첫 탑의 인덱스는 0이지만 문제 상의 위치는 1로 표시해야하므로 y를 넣어주는 게 아니라 y+1를 해야한다.신호를 받은 위치를 찾아서 answer 배열에 넣었으면 break를 해서 신호를 보내는 다음 탑을 기준점으로 하고 반복한다.def solution(heights): start=len(heights)-1 answer = [0]*len(heights) for x in range(start,0,-1): #print('x',x) for y in range(x-1,-1,-..
프로그래머스 가장 큰 수[아직 못 품..] 시간 초과로 실패 ↓def solution(numbers): string='' isZero=False for i in range(len(numbers)): if numbers[i]==0: isZero=True else: isZero=False numbers[i]=str(numbers[i]) if isZero==True: return '0' i=0 length=len(numbers)-1 for i in range(length): for j in range(length-i): if numbers[j+1] + numbers[j] < numbers[j] + numbers[j+1]: numbers[j], numbers[j + 1]=numbers[j+1],numbers[j] for i in range(len(num..
첫째가 먹는 옥수수는 큰 아이콘
프로그래머스 프린터 보기에는 엄청 간단해보이는데 무슨 조건을 줘야하는지 몰랐고 그 조건마다 뭘 실행해야 할지도 헷갈렸다. 일단 while문이 아닌 for문으로 어떻게 해보려고 해서 헤맸다. 일단 priorities 배열에 있는 index가 location인 놈을 -1로 만든다.이 놈이 몇번째로 나오는 지가 중요해서 다른 값과 구분하기 위해서다.원래 있던 놈은 num에 넣고 location에 있는 놈을 삭제하고 그 자리에 -1을 insert로 넣는다. 첫번째 if문 : 맨 처음에 -1이 있는데 max가 아닌 경우 출력을 해주면 안되고 뒤로 보내야한다.elif문 : 맨 처음에 -1이 있고 그 값이 배열의 최대값보다 크거나 같으면 1번만에 출력된 것이므로 1을 return한다. while문은 원하는 값이 출력될 때 까지 True..
띄어쓰기로 구분된 숫자로 이루어진 문자열 입력으로 '123 4'가 들어온다.'123'은 백 이십 삼이고 '4'는 4로 쳐서 123+4=127이 되도록 한다.(split()을 사용하지 말 것.)def func(string): string+=' ' temp='' result=0 for x in string: if x==' ': result+=int(temp) temp='' else: temp+=x return result print(func('123 4')) 띄어쓰기가 구분점이다. 띄어쓰기가 있으면 현재까지의 숫자(temp)로 이루어진 문자열을 result에 누적한다.여기서 문제는 ' '이 숫자 묶음보다 1개 적기 때문에 result에 누적할 때 마지막 숫자는 누락된다.그래서 그냥 처음에 string의 마지막에 ' '를 붙여버렸다.
프로그래머스 k번째수 첫번째라는 의미는 index가 0이라는 것임이에 맞춰서 배열을 잘라주면 됨def solution(array, commands): answer=[] for x in commands: cut=array[x[0]-1:x[1]] indx=x[2]-1 cut.sort() answer.append(cut[indx]) return answer 출처 https://programmers.co.kr/learn/courses/30/lessons/42748?language=python3
프로그래머스 문자열 내림차순으로 배치하기 대문자 리스트, 소문자 리스트를 만든다for문을 돌면서 주어진 문자열이 대문자인지 소문자인지 구문하여 리스트에 넣는다.내림차순 정렬을 한다.def solution(s): U=[] L=[] for x in s: if ord(x)>=65 and ord(x)