목록Programmers (190)
GitHubSeob

문제 https://school.programmers.co.kr/learn/courses/30/lessons/12953 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 유클리드 호제법으로 최대공약수(gcd)를 구하고 최대공약수를 이용해 최소공배수(lcm)를 구할 수도 있다. 대신에 더 간편한 STL을 이용해 최소공배수를 구했다. 반복문을 이용해 N개의 최소공배수를 구할 수 있다. 코드 #include #include #include using namespace std; int solution(vector arr) { int answer(1), id..

문제 https://school.programmers.co.kr/learn/courses/30/lessons/42885 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 최대 2명이란 점을 못 보고 풀다가 삽질했다.. lower_bound를 이용해서 풀어봤는데 효율성에서 시간초과가 나서 방법을 바꿨다. 투포인터 알고리즘을 사용해 풀었다. 오름차순이든 내림차순이든 상관은 없지만 오름차순으로 풀었다. 굳이 두 사람의 합을 limit에 가까이할 필요가 없다. 최대 2명이 탈 수 있고, 정렬을 했기 때문에 반례가 나올 수 없다. 가장 가벼운 사람과 가장 무..

문제 https://school.programmers.co.kr/learn/courses/30/lessons/12980 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 현재 온 거리 x2 하는 점프는 건전지 사용량이 들지 않는다. 따라서 x2 하는 점프를 많이 해야 한다. 0부터 하게 되면 어느 순간에 해야 효율적인지 알 수 없으므로 거꾸로 해야 한다. n을 2로 계속 나누면서 홀수가 되면 -1을 하고 n이 0이 될 때까지 계속 반복한다. 예를 들어 n이 6이라 해보자. 6 -> 3, 3은 홀수 이므로 -1 2 -> 1, 1은 홀수이므로 -1 다시..

문제 https://school.programmers.co.kr/learn/courses/30/lessons/49191 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 플로이드 와샬 알고리즘을 통해 문제를 풀었다. 결과인 results에는 [0] 선수가 [1] 선수를 이겼다는 정보가 담겨있다. 그 말은 [1] 선수는 [0] 선수한테 졌다는 의미도 된다. 따라서 두 정보를 벡터를 만들어 저장한다. 이기면 1, 지면 -1로, 상대전적이 없으면 2로 두었다. 자기 자신과 싸울 수는 없으므로 반복문을 통해 [idx][idx] = 0으로 설정한다. A가 B..

문제 https://school.programmers.co.kr/learn/courses/30/lessons/72413 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 처음에는 DFS로 풀어봤는데 결과가 좋지 않아서 질문글을 봤더니 다른 알고리즘으로 푸는 문제였다. 다익스트라 알고리즘으로 풀 수 있어서 따로 공부를 하고 풀었다. 해당 알고리즘을 모르고 풀 때와 알고 풀 때 푸는 시간이 확연히 차이 났다.. 이 문제에서는 지점이 3개가 나온다 A, B, S. 따라서 A, B, S지점으로 부터 모든 지점까지의 최소 요금을 모두 알아야 한다. A->x ..

문제 https://school.programmers.co.kr/learn/courses/30/lessons/12981 코딩테스트 연습 - 영어 끝말잇기 3 ["tank", "kick", "know", "wheel", "land", "dream", "mother", "robot", "tank"] [3,3] 5 ["hello", "observe", "effect", "take", "either", "recognize", "encourage", "ensure", "establish", "hang", "gather", "refer", "reference", "estimate", "executive"] [0,0] school.programmers.co.kr 문제풀이 끝말잇기를 지는 경우는 세 가지이다. 1. 이..

문제 https://school.programmers.co.kr/learn/courses/30/lessons/12945? 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 DP를 이용, 피보나치 수의 성질을 이용하여 DP[idx] = DP[idx -1] + DP[idx - 2]를 n까지 구한다. 문제에 나온 1234567로 나눈 나머지를 다시 저장한다. 코드 #include #include #define DIV 1234567 using namespace std; int solution(int n) { int answer(0), idx(0); vect..

문제 https://school.programmers.co.kr/learn/courses/30/lessons/12911 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 1. 십진수 n을 이진수로 변환 (큰 숫자를 구할 때 자릿수 증가를 대비하여 끝에 0을 붙임) 2. next_permutation을 통해 한 번만 다음 큰 숫자로 변환 3. 이진수 n을 십진수로 변환 코드 #include #include #include using namespace std; int solution(int n) { int idx(0), btoi(1), answer(0)..

문제 https://school.programmers.co.kr/learn/courses/30/lessons/43238 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 선입 선출 스케줄링 문제를 풀고 나니까 쉬웠다. 똑같이 파라메트릭 서치로 풀면 된다. 선입 선출 스케줄링에서는 작업을 시작하는 부분을 구해야 했지만, 이 문제는 끝나는 부분을 구하면 된다. 주의할 점은 범위이다, 최대범위가 1,000,000,000 * 1,000,000,000이므로 long long형을 쓴다. 문제에 있는 예시를 보자. n = 6, times = [7, 10], an..