java 72

[프로그래머스] 약수의 개수와 덧셈

출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges ** Javascript function solution(left, right) { let answer = 0; let numbers = range(left, right, 1); console.log(numbers) for (const number of numbers) { let count = 0; for (let i = 1; i Array.from({ length: (stop - start) / step + 1}, (_, i) => start + (i * step)); 감탄만 나왔던 소스 function solution(left, right) { let answer = 0; for (le..

[프로그래머스] 3진법 뒤집기

출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges ** Javascript function solution(n) { let ternary = []; let answer = 0; while (n >= 1) { if (n > 1) { ternary.push(n % 3); } else { ternary.push(n); } n = parseInt(n / 3); } for (let i = 0; i < ternary.length; i++) { answer += ternary[i] * Math.pow(3, ternary.length - 1 - i); } return answer; } toString 을 이용한 방법 효율성은 위 코드가 더 높다 cons..

[Algorithm] Floyd Warshall Algorithm (플로이드 와샬 알고리즘)

지난번 배운 데이크스트라 알고리즘과 비슷하다. 데이크스트라는 한 정점에서 모든 노드로 향하는 가장 최단 거리를 구하는 것이고 플로이드 알고리즘은 모든 노드에서 모든 노드로 가는 최단 거리를 구한다는 점에서 약간의 차이점이 있다. 위 설명이 이해가 가기 어렵겠지만 예를 들어 문래동, 목동, 화곡동, 신대방동 이렇게 네 곳이 있을 때 문래동을 경유하는 최단 거리, 목동을 경유하는 최단거리, 화곡동을 경유하는 최단 거리, 신대방동을 경유하는 최단거리를 구한다고 생각하면 된다. 위 노드에 대해 코드를 작성하자면 ** C++ #include int number = 4; int INF = 1000000000; // 자료 배열 초기화 int a[4][4] = { { 0, 5, INF, 8 }, { 7, 0, 9, I..

[Algorithm] Dijkstra Algorithm (데이크스트라 알고리즘)

https://www.inflearn.com/course/algorithm-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EC%8B%A4%EC%8A%B5/lecture/12354 알고리즘의 개요와 실습 환경 구축 - 인프런 | 학습 페이지 지식을 나누면 반드시 나에게 돌아옵니다. 인프런을 통해 나의 지식에 가치를 부여하세요.... www.inflearn.com 인프런 25강에 대한 리뷰다. 데이크스트라 알고리즘은 dp (dynamic programming)을 이용한 최단 경로 탐색 알고리즘이다. 그리드 알고리즘으로 분류되기도 한다. (매번 가장 적은 비용의 노드를 선택해서 정렬하기 때문) * 최단 거리를 구할 때 그 이전까지 구했던 최단 거리 정보를 그대로 사용한다는 특징이 있다. ..

[Algorithm] 에라토스테네스의 체

https://www.inflearn.com/course/algorithm-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EC%8B%A4%EC%8A%B5#curriculum [무료] 알고리즘의 개요와 실습 환경 구축 - 인프런 | 강의 알고리즘을 배우며, 실무에서는 알고리즘이 어떻게 활용되는지 알아봅니다., [임베딩 영상] 알고리즘의 개요와 실습 환경 구축 알고리즘은 문제를 해결하는 절차입니다.입력, 출력, 유한성, 명 www.inflearn.com 인프런 강의 22강에 대한 리뷰이다. 에라토스테네스의 체는 프로그래머스 소수찾기에서 다뤘던 터라 익숙한 개념이다. https://binaryjourney.tistory.com/120 [프로그래머스] 소수 찾기 출처: 프로그래머스 코딩 테..

[프로그래머스][위클리챌린지] 8주차 최소직사각형

출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges ** Javascript sort를 이용하여 내림차순으로 바꿔도 되지만 map 자체에서 그냥 비교한 후 바로 배열을 리턴하는 것도 좋다. function solution(sizes) { // sizes.map((item) => item.sort((a, b) => b - a)); sizes = sizes.map(([w, h]) => w item[0])); let vMax = Math.max.apply(null, sizes.map((item) => item[1..

[프로그래머스] 가운데 글자 가져오기

출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges ** Javascript function solution(s) { if (s.length % 2 === 1) { return s[parseInt(s.length / 2)]; } else { return `${s[s.length / 2 - 1]}${s[s.length / 2]}`; } } ** Python def solution(s): return s[len(s) // 2] if len(s) % 2 else s[len(s) // 2 - 1 : len(s) // 2 + 1] ** Java import java.util.*; class Solution { public String solution..

[프로그래머스] 비밀지도

출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges ** Javascript 비트연산자를 이용했다. 그리고 padStart 를 이용하여 출력되지 않은 0들을 채워주었다. function solution(n, arr1, arr2) { let answer = []; for (let i = 0; i < n; i++) { answer.push((arr1[i]|arr2[i]).toString(2).padStart(n, '0').replace(/[1]/g, "#").replace(/[0]/g, " ")); } return answer; } ** Java Java에는 따로 padStart 가 없어서 구글링하여 찾아보았다. 여러 추천 방법들이 있었는데 S..

프로그래머스 2021.09.23
반응형