프로그래머스 113

[프로그래머스] 올바른 괄호

출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges 자바스크립트로 먼저 풀던 내가 이젠 파이썬으로 먼저 푼다 파이썬이 훨씬 간편함 ** Python (+5) def solution(s): r = "".join(s.split("()")) return r == "" or (r.count("(") == r.count(")") and r[0] == "(" and r[-1] == ")") 정규식 안 쓰고 풀기 성공! (아래 자바스크립트 취향 저격 코드를 파이썬으로도 풀었는데 위의 식이 속도가 더 빨랐다.) def solution(s): pair = 0 for c in s: pair += 1 if c == "(" else -1 if pair < 0: ..

[프로그래머스] 땅따먹기

출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges 푼 사람들이 왤케 적은지 알겠다. 쉬운 거 같은데 막상 해보면 어려움 처음에 index도 따로 받아서 들어온 행마다 max값을 구해주고 그 인덱스에 해당하는 다음 행들의 열 값을 0으로 바꾼 다음 max 값을 구해주는 방식으로 하려 했는데 만약 다음 행의 max 값이 이전 행의 max값보다 클 때 구멍이 생겨 최댓값을 구할 수 없게 된다. 구글링해봤더니 첫 행의 max값을 다음 행에 더해주는 것으로 하는 방식이 최적인 것 같았다. (같은 열인 경우 제외) def solution(land): for i in range(1, len(land)): for j in range(len(land[0]..

[프로그래머스] 숫자의 표현

출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges ** Python def solution(n): answer = 0 for i in range(1, n + 1): _sum = 0 for j in range(i, n + 1): _sum += j if _sum == n: answer += 1 break elif _sum > n: break return answer 가장 많은 추천을 받은 풀이 def solution(n): return len([i for i in range(1,n+1,2) if n % i is 0]) 근데 반례도 있다고 댓글이 시끌시끌하다. ** Java class Solution { public int solution(in..

[프로그래머스] 행렬의 곱셈

출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges ** Javascript function solution(arr1, arr2) { let answer = [] for (let i = 0; i < arr1.length; i++) { let arr = []; for (let j = 0; j < arr2[0].length; j++) { let sum = 0 for (let k = 0; k < arr2.length; k++) { sum += arr1[i][k] * arr2[k][j]; } arr.push(sum); } answer.push(arr); } return answer; } ** Python (+3) def solution(arr1, ..

[프로그래머스] 신규 아이디 추천

출처: https://programmers.co.kr/learn/courses/30/lessons/72410 풀이가 굉장히 마음에 안들지만 ** Javascript function solution(new_id) { let allowed = "abcdefghijklmnopqrstuvwxyz-_.".split(""); let charArr = new_id.toLowerCase().split(""); let answer = charArr .filter(char => allowed.includes(char) || (!isNaN(char) && !isNaN(parseFloat(char)))) .join(""); while (answer.match(/\.\./)) { answer = answer.replace(/\..

[프로그래머스] 없는 숫자 더하기

출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges ** Javascript (+1) 파이썬으로 먼제 제출했으면 점수 더 잘 받았으려나 function solution(numbers) { return 45 - numbers.reduce((acc, curr) => acc + curr, 0); } ** Python def solution(numbers): return 45 - sum(numbers) ** Java class Solution { public int solution(int[] numbers) { int answer = 0; for (int number : numbers) { answer += number; } return 45 - ..

[프로그래머스] 키패드 누르기

출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges ** Javascript (+1) 이렇게 푸는 게 맞는 건지는 모르겠지만 어쨌든 풀었다. const keypad = { 1: [0, 0], 2: [0, 1], 3: [0, 2], 4: [1, 0], 5: [1, 1], 6: [1, 2], 7: [2, 0], 8: [2, 1], 9: [2, 2], 0: [3, 1] }; const left = [1, 4, 7]; const right = [3, 6, 9]; function solution(numbers, hand) { let answer = ""; let currRight = [3, 0]; let currLeft = [3, 2]; for (c..

[프로그래머스] 크레인 인형뽑기 게임

출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges 참고: https://jokerldg.github.io/algorithm/2021/03/28/crane-doll.html 프로그래머스 크레인 인형뽑기 게임 (python 파이썬) - Tech [[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]] [1,5,3,5,1,2,1,4] 4 jokerldg.github.io ** Python from collections import deque def solution(board, moves): stacklist = deque() answer = 0 for move in moves: for i i..

[프로그래머스] 음양 더하기

출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges ** Javascript 1) 맨 처음 제출한 풀이 function solution(absolutes, signs) { let answer = 0; for (const index in signs) { if (!signs[index]) { absolutes[index] = absolutes[index] * -1; } answer += absolutes[index] } return answer; } 2) 다시 푼 풀이 function solution(absolutes, signs) { return signs.reduce((acc, curr, index) => { acc += (curr) ? a..

반응형