[프로그래머스] 프린터 출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges ** Python def solution(priorities, location): answer = 0 queue = [(i, priority) for i, priority in enumerate(priorities)] while True: now = queue.pop(0) if any(now[1] .. 프로그래머스/level 2 2022.05.11
[Javascript][IE] Internet Explorer getElementsByName, querySelectorAll ForEach 지원하지 않는 문제: Array.from 사용 document.querySelectorAll document.getElementsByName 으로 개체를 가져오면 크롬이나 다른 웹브라우저에서는 NodeList 의 forEach를 지원해주는데 Internet Explorer 는 지원해주지 않아서 안된다. 찾아보면 ie9 이상이면 된다고 하지만 나는 ie11을 사용하는데도 안됨^^ https://stackoverflow.com/questions/46929157/foreach-on-queryselectorall-not-working-in-recent-microsoft-browsers forEach on querySelectorAll not working in recent Microsoft browsers I am making a script for cho.. Issue 2022.04.14
[프로그래머스] 가장 큰 수 출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges ** Javascript function solution(numbers) { var answer = numbers.map((number) => `${number}`).sort((a,b) => (b+a) - (a+b)).join(''); return answer.startsWith('0') ? '0' : answer; } **Python import functools def solution(numbers): if not sum(numbers): return "0" numbers = list(map(str, numbers)) numbers.sort(key = functools.cmp_to_ke.. 프로그래머스/level 2 2022.03.10
[프로그래머스] 이진 변환 반복 출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges ** Javascript 예전에 미리 풀었어서 몇 점 받았는지 기억이 안 남 function solution(s) { let count = 0; let zeros = 0; while (s !== "1") { zeros += (s.match(/0/g) || []).length; s = s.replace(/0/g, "").length.toString(2); count++; } return [count, zeros]; } ** Python def solution(s): c = 1 answer = [0, 0] while s != "1": zeros = [x for x in s if x == "0".. 프로그래머스/level 2 2022.03.02
[프로그래머스] 타겟 넘버 출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges ** Javascript function solution(numbers, target) { let answer = 0; function dfs(nodeList, index) { if (index acc + node, 0); if (sum === target) answer++; } } dfs(nu.. 프로그래머스/level 2 2022.02.14
[프로그래머스] 신고 결과 받기 function solution(id_list, report, k) { let members = {}; for (const r of report) { const [ reporter, reportee ] = r.split(" "); if (members[reportee]) { if (!members[reportee][1].includes(reporter)) { members[reportee][0]++; members[reportee][1].push(reporter); members[reportee][1] = [ ...new Set(members[reportee][1])]; } } else { members[reportee] = [1, [reporter]]; } } let answer = new Array(.. 프로그래머스/level 1 2022.01.25
[프로그래머스] 다음 큰 숫자 출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges ** Python def solution(n): answer = n while(True): answer += 1 if str(bin(answer)).count("1") == str(bin(n)).count("1"): break return answer * bin은 2진수로 바꿔주는 함수다. ** Javascript function solution(n) { let answer = n while (true) { answer++ if ((answer.toString(2).match(/1/g) || []).length === (n.toString(2).match(/1/g) || []).length.. 프로그래머스/level 2 2021.12.07
[프로그래머스] 올바른 괄호 출처: 프로그래머스 코딩 테스트 연습, 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: .. 프로그래머스/level 2 2021.12.07
[프로그래머스] 행렬의 곱셈 출처: 프로그래머스 코딩 테스트 연습, 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, .. 프로그래머스/level 2 2021.11.29
[프로그래머스] 신규 아이디 추천 출처: 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(/\.. 프로그래머스/level 1 2021.11.15