본문 바로가기

알고리즘5

[백준] 1920 수 찾기 [Silver 4] 1920 수 찾기문제 링크구분알고리즘 > 이분탐색풀이 요약이분탐색을 활용하여 주어진 배열에 해당 숫자가 존재하는지 풀어내는 문제나의 풀이const input = require("fs") .readFileSync("./input.txt") .toString() .trim() .split("\\n");const N = Number(input[0]);let Nnum = input[1].split(" ").map(Number);const M = Number(input[2]);let Mnum = input[3].split(" ").map(Number);const answer = [];Nnum.sort((a, b) => a - b);Mnum.forEach((v) => { let star.. 2024. 11. 3.
[백준] 1018 체스판 다시 칠하기 [Silver 4]1018 체스판 다시 칠하기문제 링크구분알고리즘 > 완전탐색풀이 요약8*8 체스판에서 흰색 또는 검은색으로 시작하는 체스판 패턴과 비교하여 최소한으로 체스판을 다시 칠하는 경우의 수를 구하는 문제나의 풀이const input = require("fs") .readFileSync("/dev/stdin") .toString() .trim() .split("\\n");let [board, ...arr] = input;const [n, m] = board.split(" ");arr = arr.map((i) => i.split(""));let answer = [];const whiteboard = [ "WBWBWBWB", "BWBWBWBW", "WBWBWBWB", "BWBWBWBW.. 2024. 10. 27.
[백준] 10448 유레카 이론 [Bronze 1] 10448 유레카 이론문제 링크구분알고리즘 > 완전탐색풀이 요약세 개의 삼각수 합으로 표현되는 문자임을 알아내기 위해 모든 가능한 조합을 검사해서 각 숫자가 삼각수이면 true, 그렇지 않으면 false를 반환하는 문제나의 풀이const [testCase, ...testCaseArr] = require("fs") .readFileSync("/dev/stdin") .toString() .trim() .split("\\n") .map(Number);for (let i = 0; i 삼각수는 각 숫자가 이전 값에 1씩 더해진 합으로 표현됩니다.예를들면,1=13=1+26=1+2+310=1+2+3+4Eureka 함수는 숫자 num이 삼각수인지 확인하는 함수입니다.또 TriangleNum.. 2024. 10. 27.
[백준] 10773 제로 [Silver 4] 10773 제로문제 링크구분알고리즘 > 구현풀이 요약주어진 숫자 배열에서 0이 나오면 이전에 추가된 숫자를 제거하고, 남은 숫자들의 합을 계산하는 문제나의 풀이const input = require("fs") .readFileSync("/dev/stdin") .toString() .trim() .split("\\n") .map(Number);const K = input.shift();const arr = [...input].map(Number);const num = [];for (let i = 0; i a + b));}배운점문제를 풀 때 원하는 답이 출력이 안되서 stack을 떠올려서 풀었습니다. 주의할 점은 숫자 0을 만나면 0과 함께 이전 숫자를 지워야 합니다.또한 re.. 2024. 10. 22.
[프로그래머스] 서울에서 김서방 찾기 [Level 1] 서울에서 김서방 찾기문제 링크구분코딩테스트연습 > 연습문제풀이 요약seoul 배열에서 “Kim” 이 있는 인덱스를 찾아서 문자열로 반환하는 문제나의 풀이function solution(seoul) { for(let i=0; iseoul 배열의 길이만큼 for문을 사용하여 if문에서 Kim을 걸러서 문자열을 바로 리턴하게 했습니다.제가 사용한 방식은 배열을 처음부터 끝까지 순차적으로 탐색한 선형 탐색 알고리즘을 사용했습니다. 2024. 10. 13.