반응형

FE 309

백준 2458: 키 순서 - javascript(dfs)

문제 출처 https://www.acmicpc.net/problem/2458 정답 풀이순위를 확신할 수 있는 학생은자기보다 작은 학생 수 + 자기보다 큰 학생 수에서  -1 한 값이 n과 같은 학생이다.  +총 학생 수가 6명일 때 나보다 작은 학생이 3명이고, 나보다 큰 학생이 2명이면 나는 4번째 순서라는 것을 알 수 있음  dfs 탐색을 통해서 나보다 몇명이 큰지 계산하고, 나보다 작은 학생이 몇명인지 계산한다.  그 후, 그 합에서 -1 한 값이 n과 같으면 answer+= 1 을 한다. ! 정답 코드  let input = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n'); const [n,m] = input[0].sp..

백준 1516 : 게임 개발 - javascript(dp , 위상정렬)

문제 출처 https://www.acmicpc.net/problem/1516 정답 풀이 위상 정렬 (Topological Sort)을 사용하여 해결할 수 있다. 문제에서 각 건물을 짓기 위해 필요한 시간과 그 건물의 선행 조건을 만족해야 하는 다른 건물들이 제시된다.  - 위상 정렬을 통해 건설 순서를 찾고, - 각 건물이 건설되기까지 걸리는 시간을 계산한다.  기본 과정 1. 각 건물마다 걸리는 건설 시간 저장 2. 각 건물에 대해 먼저 지어야 하는 건물의 관계를 그래프로 저장 3. 위상 정렬을 수행하면서, 각 건물의 최대 건설 시간을 계산 ### 위상 정렬이란? 위상 정렬은 방향성이 있는 비순환 그래프 에서 각 노드를 순서대로 나열하는 방법이다. 즉, 선행 조건을 가지는 작업들을 그 조건에 맞게 처리..

# [13차] 토스 next developer [서류 지원 및 분석]

공유 글귀 요즘 읽고 있는 `제시 리버모어의 회고` 에 나온 문장이다. 투자 책이지만 참 인상 깊어서 공유하려고 한다. (토스 개발 서류 지원 글 맞아요,, ㅋㅋㅋㅋ! ) 나는 앞서 100만 달러를 잃고도 면화시장에 전혀 원한 같은 것을 갖지 않았고, 그런 실수를 저지른 나 자신을 미워하지도 않았으며, 마찬가지로 필라델피아에서 매도 물량을 정리해 손실을 만회한 데 대해서도 자랑스럽게 생각하지 않았다. 내가 가진 트레이딩 정신은 오로지 트레이딩이라는 문제에만 집중한다. 경험과 기억력 덕분에 첫 번째 손실을 만회했다고 말할 수 있다면 그것으로 충분하다는 생각이다. 제시 리버모어는 잘못 판단해 100만 달러를 잃고도 침착했고, 자기 자신을 미워하지도 않았다는게 참 대단하다 더 대단한건 바로 손실을 회복할 때도..

취준 2024.10.02

개발바닥 이력서 & 포트폴리오 분석하기

분석 계기 난 우물 안 개구리였다. 내 맘대로 이력서 & 포트폴리오를 쓰고 있었다는 생각이 들었다. 이젠 그러면 안된다. 계속 수정해야 한다 !! 그래서 먼저 개발바닥 유튜버(?) 분들의 영상들을 하나씩 보며, 분석하고, 요약해보자  01. 배달의 민족 합격한 신입 개발자 이력서 공개합니다. https://www.youtube.com/watch?v=Yc56NpYW1DM&t=168s요약 정리 01. 소개  - 나는 어떤 개발자이고, 어떤 가치관을 갖고 있는지 소개  호돌맨님 - 이력서 상단에 짧은 소개 (꽉채움면 3줄, 넓으면 5줄)- 몇년자 백엔드 개발자 - 어떤 일을 했었고, 어떤일을 할 수 있는지 간략하게 적는다.  02. sns중요한건 두개- 깃허브 : 잔디가 빼곡함, TIL 뿐만 아니라, 다양한 ..

취준 2024.10.02

백준 3584 : 가장 가까운 공통 조상 - javascript(dfs)

문제 출처 https://www.acmicpc.net/problem/3584 정답 풀이 이거는 사실 입력처리 하는 것이 까다로웠던 것 같다.  문제를 푸는 핵심은 - 각 노드의 부모를 배열에 저장을 한다. - 하나 노드의 모든 부모를 배열 (= 조상 배열)로 정리한다.   - 함수로 만들 것 - 비교해야 하는 노드 두개의  조상 배열을 비교한다. - 뒤에서부터 비교해서 일치하지 않을 때 그때의 조상이 답이 된다.   readline 모듈을 사용하여 입력을 한 줄씩 받아 배열 input에 저장한다. 입력이 완료되면 on('close') 이벤트가 실행되어 본격적으로 문제를 처리한다. const readline = require('readline');const rl = readline.createInterfa..

취준 2024.10.02

백준 13325: 이진트리 - javascript(트리)

문제 출처 https://www.acmicpc.net/problem/13325 정답 코드 const fs = require('fs');const input = fs.readFileSync('/dev/stdin').toString().trim().split('\n');let k = Number(input[0]); // 트리의 높이let size = Math.pow(2, k + 1) - 1; // 트리의 전체 노드 수let arr = new Array(size + 1).fill(0); // 노드의 가중치를 저장하는 배열// 트리의 가중치 입력let weights = input[1].split(' ').map(Number);for (let i = 2; i = size) { ans += arr..

백준 11066: 파일 합치기 - javascript(dp)

문제 출처 https://www.acmicpc.net/problem/11066 정답 코드 전략1. 주어진 파일을 순서대로 합치고, 파일을 합치는 비용은 두 파일 크기의 합이다. 2. 여러 파일을 합치기 위해 최적 부분 구조를 활용한 dp를 사용하여, 부분 문제들의 최솟값을 저장하며 문제를 해결한다. 3. 합칠 파일의 범위를 설정하고, 그 범위 내에서 파일을 합치는 최소 비용을 찾는 방식으로 접근한다.  해결 과정1. 먼저 각 파일의 크기를 저장하고, 파일의 누적합 배열을 미리 구한다. 2. dp 테이블을 설정하여 각 구간에서의 최소 비용을 기록한다. 3. 주어진 파일들을 두 그룹으로 나누고, 각 그룹을 합친 뒤 다시 합치는 비용을 반복적으로 계산한다.  누적합 배열 : 0번째 부터 i 번째 파일까지의 크..

백준 16987: 계란으로 계란치기 - javascript(백트래킹, 완전탐색)

문제 출처 https://www.acmicpc.net/problem/16987 정답 풀이 완전 탐색을 이용한다. 정답 코드 //계란으로 계란 치기 //-각 계란 내구도, 무게 //-상대 계란의 무게만큼 계란의 내구도가 깍임 //-계란 0이하 깨짐 //일렬 계란, 차례로 들어, 한번씩 다른 계란 쳐 => 최대한 많은 계란 깨기 let input = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n')const n = Number(input.shift()); let egg = input.map(el => el.split(' ').map(v => +v)); function solution(n,egg){ let max = 0 f..

프로그래머스 : 소수 찾기 - javascript(완전탐색, 소수 판별)

문제 출처 https://school.programmers.co.kr/learn/courses/30/lessons/42839?language=javascript 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 정답 풀이 아래 두개의 함수를 작성하면 된다  numbers로 순열을 구하는 함수  해당 숫자가 소수인지 확인하는 함수  정답 코드 function solution(numbers) { let answer = new Set() for(let i=1; i el.join('')) let prime = check(format) p..

백준 4256 : 트리 - javascript(트리)

문제 출처 https://www.acmicpc.net/problem/4256 정답 풀이 정답 코드 const fs = require('fs');const input = fs.readFileSync('/dev/stdin').toString().trim().split('\n');let idx = 0;const T = parseInt(input[idx++]); // 테스트 케이스 수let sb = '';function findPostOrder(rootIdx, begin, end, N, preOrder, inOrder) { if (rootIdx >= N) return; // base case: 루트 인덱스가 배열 범위를 벗어나면 리턴 const rootValue = preOrder[rootIdx];..

반응형