분류 전체보기 (180) 썸네일형 리스트형 프로그래머스 LV 2 최솟값 만들기 def solution(A,B): answer = 0 A.sort(); B.sort(reverse=True); for i in range(0,len(A)) : answer += A[i] * B[i]; return answer;풀이 및 회고각 배열을 곱했을때 최솟값을 구하는 문제다. 이럴때 왼쪽 배열에서 제일 작은 값과 오른쪽 배열에서 가장 큰 값을 곱해 나가면 최솟값을 구할 수 있으니 정렬과 리버스정렬을 사용한 후 곱을 더해준다. 프로그래머스 LV 2 올바른 괄호 def solution(s): answer = True stack = []; for i in s : if i == '(' : stack.append(i); elif i == ')' : if stack : stack.pop(); else : answer = False; break; if stack : answer = False; return answer풀이 및 회고stack 을 사용해 푸는 간단한 문제이다. '(' 을 만나면 무조건 stack 에 저장하고 ')' 을 만났을때 stack에 '(' 가 있는지.. 프로그래머스 LV 2 최댓값과 최솟값 def solution(s): answer = ''; data_r = list(map(int, s.split())); result = str(min(data_r)) + ' ' + str(max(data_r)); return result풀이 및 회고간단하게 문자열로 주어진 입력값들에서 최댓값과 최솟값을 찾는 문제인데 형변환을 통해 어렵지 않게 풀 수 있었다. 프로그래머스 LV 2 뒤에 있는 문자열 def solution(numbers): stack = [] answer = [-1] * len(numbers) for i in range(len(numbers)): while stack and numbers[stack[-1]] 풀이 및 회고처음에는 이중 for 문을 통해서 문제를 해결하려고 했다. 그러면 시간초과가 걸리게 된다. 예를들면 엄청 긴 배열이 있는데 그 별에서 뒤에 자신보다 큰 문자열이 존재하지 않으면 계속해서 for문이 돌기 때문이라고 생각한다. 그래서 이중 for문 문제를 직면했을때 stack 자료구조를 사용해서 많이 푼다고 한다. 프로그래머스 LV 1 추억점수 def solution(name, yearning, photo): answer = [] dict = {} for i in range(0,len(name)) : dict[name[i]] = yearning[i]; for i in photo : score = 0; for j in i : if j in dict : score += dict[j]; answer.append(score); return answer; 풀이 및 회고딕셔너리를 활용해서 조건에 일치하는 이름이 나올때 value 값을 가져와 더해줬다. 프로그래머스 LV 1 데이터 분석 def switching(str): if str == 'code' : return 0; elif str == 'date' : return 1; elif str == 'maximum' : return 2; elif str == 'remain' : return 3;# 다음번엔 딕셔너리 활용def solution(data, ext, val_ext, sort_by): answer = []; for i in data : if i[switching(ext)] 풀이 및 회고ext 로 data 안에서 조건에 부합한 리스트만 answer 추가 시켜준 후 정렬를 시켜줬다.switching 함수를 만들어 ext 와 sort_by.. 프로그래머스 LV 1 문자열 자르기 def solution(s): same = 0 diff = 0 answer = 0 sameChar = '' for i in s: if same == 0: sameChar = i if sameChar != i: diff += 1 elif sameChar == i: same += 1 if diff == same: answer += 1 same = 0 diff = 0 sameChar = '' if sameChar : answer +.. 프로그래머스 LV 2. 두 큐 합 같게 만들기 오답 const doSum = (q) => { let result = 0; q.forEach((num) =>{ result +=num; } ) return result; } function solution(q1, q2) { var answer = 0; console.log(doSum(q1)); console.log(doSum(q2)); while(doSum(q1) !== doSum(q2)){ if(doSum(q1) > doSum(q2)){ let shift = q1.shift(); q2.push(shift); answer+=1; } else if(doSum(q1) < doSum(q2)){ let shift = q2.shift(); q1.push(shift); answer+=1; } } return ans.. 이전 1 ··· 4 5 6 7 8 9 10 ··· 23 다음