본문 바로가기

알고리즘6

[JS / 백준] - (정렬) - 2750번 수 정렬하기 https://www.acmicpc.net/problem/2750 2750번: 수 정렬하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 오랫만에 알고리즘 문제를 풀어보았는데 역시 간만에 풀려니 좀 많이 헤맷다 ㅜㅜㅜ 이번에 알고리즘 스터디에 들어가게 되었는데 다들 경험이 없어서 처음에는 가장 쉽다? 라고 느끼는 정렬 문제를 풀어보았다. 문제 N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. 출력 첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다. 내풀이 1. readline 방식 con.. 2022. 6. 20.
[JS] - 봉우리의 개수는 몇개인가? N*N 격자판에 그 지역의 높이가 쓰여있다. 각 격자판의 숫자 중 자신의 상하좌우보다 큰 숫자를 봉우리지역이라 한다. 봉우리 지역이 몇개인가? 와후...... 이건 뭐 보자마자 아..... 무슨 말인지 1도 모르겠다!!!!!! 일단 주어진 봉우리를 살펴보자 let arr = [ [5, 3, 7, 2, 3], [3, 7, 1, 6, 1], [7, 2, 5, 3, 4], [4, 3, 6, 4, 1], [8, 7, 3, 5, 2], ]; 방금 앞에서 했던 격자판과는 달랐다. 이것은 그냥 상하좌우를 다 비교하면서 만약에 자기보다 큰게 하나라도 존재하지않는 것을 찾아야하는 문제이다. 그냥 어렵다 바로 문제풀이가자 상하좌우의 index를 구해야할때 기준이 0,0 이라면 ? -1, 0 0 ,-1 0 , 0 0 , 1.. 2022. 3. 16.
[JS] - 격자판의 최대합 구하기 주어진 이차원 배열에서 가로, 세로, 대각선의 합을 구해서 가장 큰 값을 출력하는 알고리즘 // 주어진 배열 let arr = [ [10, 13, 10, 12, 15], [12, 39, 30, 23, 11], [11, 25, 50, 53, 15], [19, 27, 29, 37, 27], [19, 13, 30, 13, 19], ]; 주어진 배열에 가로, 세로 , 대각선의 합을 구하여서 가장 큰 합을 구하라고 한다.... 이게 도대체 무슨...????? 대략 처음에 문제를 파악할 때는 일단 이중for문을 써야할 거 같다. 그러면 처음에 내가 짠 코드를 보자 . function solution(arr){ let answer = 0; let n = arr.length ; let sum = 0; for(let i.. 2022. 3. 15.
[알고리즘] - 중복 문자 제거 중복 문자 제거 풀이 function solution(s) { let answer = ""; for (let x in s) { //console.log(Number(x), s[x], s.indexOf(s[x])); if (Number(x) === s.indexOf(s[x])) { answer += s[x]; } } return answer; } console.log(solution("ksekkset")); -> for... in 문을 사용하면 안의 인덱스 번호와 해당 문자를 알수있다 //console.log(Number(x), s[x], s.indexOf(s[x])); 를 이용하여 콘솔창을 보면 //(Number(x), s[x], s.indexOf(s[x])) 0 k 0 1 s 1 2 e 2 3 k 0 .. 2022. 3. 10.
[알고리즘] - 가장 긴 문자열 찾기 n개의 문자열이 입력된 배열안에서 가장 긴 문자열을 출력하라 function solution(s) { let answer = ""; let maxLength = Number.MIN_SAFE_INTEGER; for (let i = 0; i < s.length; i++) { if (maxLength < s[i].length) { maxLength = s[i].length; answer = s[i]; } } //answer = maxLength; return answer; } let str = ["teacher", "time", "student", "beautiful", "good"]; console.log(solution(str)); // 결과값 // beautiful 출처 - 인프런 : 자바스크립트 알고리.. 2022. 3. 10.
[알고리즘] - 순위 알고리즘 (Rank algorithm) 순위 알고리즘 : 주어진 데이터의 순위를 구하는 로직 //[?] 주어진(지정한 범위) 데이터의 순위(등수)를 구하는 로직 // 순위 알고리즘 (RANK) : 함수 데이터에 대한 순위 구하기 const scores = [90, 87, 100, 95, 80]; // 등수 : 3,4,1,2,5 let ranker = Array(scores.length).fill(1); // 배열의 점수별로 등수 매기기 scores.forEach((e, i) => { ranker.forEach((f, j) => { if (e { console.log(`점수 : ${e.toString().padStart(3)} , 순.. 2022. 1. 14.
728x90
반응형