본문 바로가기

코딩 테스트107

16964 DFS 스페셜 저지 https://www.acmicpc.net/problem/16964문제BOJ에서 정답이 여러가지인 경우에는 스페셜 저지를 사용한다. 스페셜 저지는 유저가 출력한 답을 검증하는 코드를 통해서 정답 유무를 결정하는 방식이다. 오늘은 스페셜 저지 코드를 하나 만들어보려고 한다.정점의 개수가 N이고, 정점에 1부터 N까지 번호가 매겨져있는 양방향 그래프가 있을 때, DFS 알고리즘은 다음과 같은 형태로 이루어져 있다. 이 문제에서 시작 정점은 1이기 때문에 가장 처음에 호출하는 함수는 dfs(1)이다. DFS 방문 순서는 dfs함수에서 // x를 방문 이라고 적힌 곳에 도착한 정점 번호를 순서대로 나열한 것이다.트리가 주어졌을 때, 올바른 DFS 방문 순서인지 구해보자.입력첫째 줄에 정점의 수 N(2 ≤ N ≤.. 2024. 12. 19.
17425 약수의 합 (node.js) https://www.acmicpc.net/problem/17425문제두 자연수 A와 B가 있을 때, A = BC를 만족하는 자연수 C를 A의 약수라고 한다. 예를 들어, 2의 약수는 1, 2가 있고, 24의 약수는 1, 2, 3, 4, 6, 8, 12, 24가 있다. 자연수 A의 약수의 합은 A의 모든 약수를 더한 값이고, f(A)로 표현한다. x보다 작거나 같은 모든 자연수 y의 f(y)값을 더한 값은 g(x)로 표현한다.자연수 N이 주어졌을 때, g(N)을 구해보자.입력첫째 줄에 테스트 케이스의 개수 T(1 ≤ T ≤ 100,000)가 주어진다. 둘째 줄부터 테스트 케이스가 한 줄에 하나씩 주어지며 자연수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 출력각각의 테스트 케이스마다, 한 줄에 하나.. 2024. 12. 16.
[lv3]코딩 테스트 공부 (자바스크립트) https://school.programmers.co.kr/learn/courses/30/lessons/118668?language=javascript 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 처음 생각해 본 경우의 수 알고력 코딩력이 문제에서 요하는 알고 코딩력보다 크다면 풀어버리기요하는 것보다 작다면 1시간 당 코딩 또는 알고력이 +1 이니까 (필요 코딩력 - 현재 코딩력),(필요 알고력-현재 알고력) 풀었던 문제들에 대해 문제 돌면서 알고 코딩력 얻기 위의 경우에서의 에러 사항은 문제를 풀어서 코딩/알고력을 얻다가 시간 당 1씩 얻는 경우도 있고.. 2024. 5. 22.
빛의 경로 사이클 https://school.programmers.co.kr/learn/courses/30/lessons/86052?language=javascript 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr사이클의 존재 유무와 그것의 길이는 이미 지나쳤던 경로를 한 번 더 지나는지를 판별하면 알 수 있음.처음에 해맸던 점은 이것을 0,0 지점에 위치한 노드만 봐야하는지와 모든 지점을 거쳐야지만 사이클이 되는지였다.결과적으로 한 지점에서 출발하여 모든 지점을 지나칠 필요는 없으며, (0,0)이 아니더라도 사이클을 찾으면 되느 것이었다.즉, 반복문을 통하여 (0,0)~(n.. 2024. 5. 21.
2차원 동전 뒤집기 https://school.programmers.co.kr/learn/courses/30/lessons/131703 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr한 번 뒤집었던 행/열을 또 한번 뒤집어봤자 같은 결과경우의 수는 1. 행을 뒤집어 보고 열을 뒤집기 , 2. 열을 뒤집어 보고 행을 뒤집기예를 들어서 2의 경우의 수를 더 딥하게 나눠보면 한 행의 모든 동전이 목표의 행에 있는 모든 동전과 모두 반대이거나, 모두 같다면 원하는 바를 이룰 수 있음 따라서, 2의 경우의 수를 더 나눠보면행의 첫번째 요소들을 기준으로 목표의 행과 다른 경우 행을 뒤집고,.. 2024. 5. 20.
스타 수열 (Javascript) https://school.programmers.co.kr/learn/courses/30/lessons/70130 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr문제의 조건과 예시는 아래와 같다.1. x의 길이를 2n이라 할 때, 다음과 같은 n개의 집합 {x[0], x[1]}, {x[2], x[3]}, ..., {x[2n-2], x[2n-1]} 의 교집합의 원소의 개수가 1 이상입니다.2. x[0] != x[1], x[2] != x[3], ..., x[2n-2] != x[2n-1] 입니다.3. x의 길이가 2 이상의 짝수입니다. (빈 수열은 허용되지 않습니다.. 2024. 5. 17.
카드 짝 맞추기 (자바스크립트) https://school.programmers.co.kr/learn/courses/30/lessons/72415 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 초기 위치 => 뒤집을 수 있는 모든 카드들 위치 찾기 => 찾은 위치에서부터 같은 값을 갖고 있는 위치를 찾기 => 찾은 카드들의 갯수가 목표 갯수랑 갖기 전까지 앞의 과정 반복 let answer = Number.MAX_SAFE_INTEGER;const MAX = Number.MAX_SAFE_INTEGER;function solution(board, r, c) { let T = 0; f.. 2024. 5. 15.
카운트 다운 (javascript) https://school.programmers.co.kr/learn/courses/30/lessons/131129 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이 dp를 이용해서 각 인덱스에는 점수 별로 얻을 수 있는 [최소한의 방법 수, '볼'+'싱글' 횟수] 을 지정해줌50점 배수는 불을 맞춰서 점수를 획득하는 것이 최소한이니 반복문을 이용해서 50점마다 먼저 값을 넣어줌1~60 점 구간에는 다트를 한번이라도 던졌을 때 얻을 수 있는 점수들이 있음1~20 싱글 => dp[1~20] = [1,1]    20~40 더블 -> 싱글의 2배수인 인덱스들이 .. 2024. 5. 14.
뒤에 있는 큰수 찾기 (자바스크립트) https://school.programmers.co.kr/learn/courses/30/lessons/154539 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr문제문제 설명 정수로 이루어진 배열 numbers가 있습니다. 배열 의 각 원소들에 대해 자신보다 뒤에 있는 숫자 중에서 자신보다 크면서 가장 가까이 있는  수를 뒷 큰수라고 합니다. 정수 배열 numbers가 매개변수로 주어질 때, 모든 원소에 대한 뒷 큰수들을 차례로 담은 배열을 return 하도록 solution 함수를 완성해주세요. 단, 뒷 큰수가 존재하지 않는 원소는 -1을 담습니다.풀이fo.. 2024. 4. 25.