[Programmers]여행경로/JS
·
Algorithm/Programmers
문제링크https://school.programmers.co.kr/learn/courses/30/lessons/43164[프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr](https://school.programmers.co.kr/learn/courses/30/lessons/43164%5D)풀이방법"만일 가능한 경로가 2개 이상일 경우 알파벳 순서가 앞서는 경로를 return 합니다" 라는 조건이 존재하기 때문에입력받은 tickets를 정렬해주었다.JS에서 sort 함수를 사용하면 알아서 사전 순 정렬을 해준다. 신기하게 2차원 배열도 우리가 원하는 결과대로 ..
[Programmers]우박수열 정적분/JS
·
Algorithm/Programmers
문제링크https://school.programmers.co.kr/learn/courses/30/lessons/134239풀이방법temp에 k를 저장하고, k에 k가 짝수이면 k/2, 홀수이면 k*3+1을 해준 값을 저장한다.사다리꼴 넓이 공식을 이용해서 (밑변(=temp)+아랫변(k))/2를 해서 area에 저장해준다.이 과정을 k가 1이 될 때까지 반복한다.이제 위에서 구한 count 값과 area 배열을 가지고 계산을 해준다.주어진 ranges를 돌면서 범위를 구해준다. 예를 들어 [0,-1]이 주어진다면 0은 그대로 두고 count에서 -1을 해준 값으로 바꿔준다.3번에서 구한 범위를 가지고 area의 값들을 더해준 값을 answer에 저장해주면 끝!정답코드function solution(k, r..
[Algorithm] BFS 문제
·
Algorithm/Programmers
문제신종 바이러스인 웜 바이러스는 네트워크를 통해 전파된다. 한 컴퓨터가 웜 바이러스에 걸리면 그 컴퓨터와 네트워크 상에서 연결되어 있는 모든 컴퓨터는 웜 바이러스에 걸리게 된다.예를 들어 7대의 컴퓨터가 과 같이 네트워크 상에서 연결되어 있다고 하자. 1번 컴퓨터가 웜 바이러스에 걸리면 웜 바이러스는 2번과 5번 컴퓨터를 거쳐 3번과 6번 컴퓨터까지 전파되어 2, 3, 5, 6 네 대의 컴퓨터는 웜 바이러스에 걸리게 된다. 하지만 4번과 7번 컴퓨터는 1번 컴퓨터와 네트워크상에서 연결되어 있지 않기 때문에 영향을 받지 않는다.어느 날 1번 컴퓨터가 웜 바이러스에 걸렸다. 컴퓨터의 수와 네트워크 상에서 서로 연결되어 있는 정보가 주어질 때, 1번 컴퓨터를 통해 웜 바이러스에 걸리게 되는 컴퓨터의 수를 출..
[Algorithm] 시간복잡도
·
Algorithm/Programmers
시간복잡도란?시간복잡도란 알고리즘의 성능을 설명하기 위해 사용하는 것이다.연산을 몇 번 수행하는가?를 식으로 나타낸 것이다.여기서 드는 의문은 시간복잡도인데 왜 시간이 아니라 왜 연산 횟수로 판단하지?? -> 컴퓨터의 하드웨어나 어떤 언어를 사용하는지에 따라 달라지기 때문에 연산 횟수만 고려하는 것 빅오 표기법(Big-O)?빅오 표기법은 시간복잡도를 나타내는데 사용하는 점근적 표기법이다.점근적 표기법에는 최상의 경우를 나타내는 오메가 표기법, 평균의 경우를 나타내는 세타 표기법, 최악의 경우를 나타내는 빅오 표기법이 있다.이 중 빅오 표기법을 사용하는 이유는 최악의 경우에 걸리는 시간을 계산하여 이 알고리즘을 사용했을 때의 성능을 보장할 수 있기 때문이다.(최악의 경우인데도 이 정도밖에 안걸린다!라고 자..
[Programmers]산 모양 타일링[JS]
·
Algorithm/Programmers
문제링크 https://school.programmers.co.kr/learn/courses/30/lessons/258705 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근방법 처음 문제를 읽고 어떻게 풀어야 할 지 감이 잡히지 않았다. 손으로 하나씩 그려보면서 규칙을 찾아보려 했는데.. 복잡하기도 하고 눈에 띄는 규칙도 안보였다. 구글링을 해서 답을 얻으려고 했지만 다른 블로그들을 보고도 이해하기가 쉽지 않았다. 그러다 카카오에서 작성한 해설을 보게 되었는데 가장 이해가 잘됐다!! 링크는 아래 첨부해두겠습니다~! 문제풀이 타일을 채울 수 있는 방법은..
[Programmers]야근 지수/JS
·
Algorithm/Programmers
문제링크 https://school.programmers.co.kr/learn/courses/30/lessons/12927 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근방법 야근 피로도를 최소한 값을 리턴해야 하는 문제이다. 먼저 works 배열을 내림차순으로 정렬해주고 가장 큰값과 다음 값을 비교해서 차이만큼 빼줘야겠다고 생각했다. 빼준 다음 다시 정렬하는 반복문을 n이 0일때까지 반복하면 되겠다라고 생각하고 코드를 작성했다. 실패코드 function solution(n, works) { var answer = 0; works.sort(functi..