전체 글

전체 글

    [프로그래머스 / Javascript] 당구 연습

    문제 https://school.programmers.co.kr/learn/courses/30/lessons/169198 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 해당 문제는 하나의 공(startX, startY)를 가지고 주어진 공들(balls)들을 원 쿠션으로 맞추는 방법 중 가장 짧은 케이스의 길이의 제곱을 구하는 문제이다. 이 문제는 시작하는 공에서 벽, 벽에서 맞추어야 하는 공까지의 거리를 구하여 더할 수도 있지만, 간단하게 벽을 기준으로 하나의 공을 반전시켜 해당 공과의 거리를 구하면 이동 거리를 쉽게 구할 수 있다. 위 과정을..

    [프로그래머스 / Javascript] 전력망을 둘로 나누기

    문제 https://school.programmers.co.kr/learn/courses/30/lessons/86971 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 해당 문제는 송전탑의 연결 상태를 파악한 후 모든 전선을 한번씩 잘라보며 각 전원의 송전탑의 수의 차이를 구하는 문제이다. 문제를 풀 때 송전탑의 연결을 송전탑의 오브젝트에 넣어두어 연결 상태를 확보한 후 끊긴 이 후 송전탑의 수를 구했다. 글보다 코드를 보면 이해가 쉬울 것 같다. function countLink (link,start) { let answer = 0; const..

    소수(Prime number) 판별법/ javaScript

    소수 (Prime number) 판별법 소수란 1, -1과 자기 자신, 자기 자신의 반수로 밖에 나누어 떨어지지 않는 1 이외의 정수, 즉 양의 약수가 2개인 자연수를 의미한다. 소수는 다양한 알고리즘 문제에 자주 등장하는 개념이다. 그러므로 소수를 판별하는 법을 알아두고, 효율적인 방법을 기억해두는 것이 좋다. 1. 3부터 자기 자신까지 비교 첫 번째 방법은 말 그대로 3부터 자기 자신까지 모든 수를 숫자에 나누어보아 약수 여부를 판단하는 것이다. 아래 코드를 보자 const isPrime = ( num ) => { if(num < 2) return false;// 0과 1은 소수가 아니다. if(num === 2) return true;// 2는 유일한 짝수인 소수이다. if(num % 2 === 0..

    [프로그래머스 / C++] 이모티콘 할인행사

    문제 문제 길이가 길어 문제는 링크로 확인 부탁드립니다. https://school.programmers.co.kr/learn/courses/30/lessons/150368 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 해당 문제는 조건에 부합하는 최적의 이모티콘 각 할인률을 구하는 문제이다. 문제에서 중요한 조건은 아래와 같다. 1. 1번 목표가 우선이며, 2번 목표가 그 다음입니다. 2. 1 ≤ emoticons의 길이 = m ≤ 7 , 할인율은 10%, 20%, 30%, 40% 중 하나로 설정 1번 조건은 이모티콘 판매 가격이 아무리 높더..

    [프로그래머스 / C++] 롤케이크 자르기

    문제 https://school.programmers.co.kr/learn/courses/30/lessons/132265 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 해당 문제는 같은 토핑 가짓수로 나눌 수 있는 방법의 수를 반환하는 문제이다. 그렇기 때문에 모든 케이스를 확인해볼 필요가 있었다. 이때 모든 자르는 방법 마다 양쪽의 토핑 수를 카운트하면 시간 초과가 날 것 같았다. -> 시간 복잡도는 n^n이므로 최대 100000^100000이다. 그렇기에 초기 값을 구한 후 순서대로 올라가며 계산된 map에서 right -> left으로 값..

    [프로그래머스 / C++] 모음 사전

    문제 https://school.programmers.co.kr/learn/courses/30/lessons/84512 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 해당 문제는 최대 연산이 1만 이하인 케이스를 제시하고 있다. (모음 5개를 1에서 5자리 사이로 배치하는 경우 이므로) 그렇기에 DFS로 완전 탐색을 진행하면서 타겟 단어와 서치중인 단어가 같을 경우의 count를 반환하면 정답이 나온다. #include #include #include using namespace std; vector dic = {"A","E","I","O","..