본문 바로가기

코딩테스트!(프로그래머스 & 백준)145

[ 백준 1504 ] 특정한 최단경로 (C++) 1504번: 특정한 최단 경로 첫째 줄에 정점의 개수 N과 간선의 개수 E가 주어진다. (2 ≤ N ≤ 800, 0 ≤ E ≤ 200,000) 둘째 줄부터 E개의 줄에 걸쳐서 세 개의 정수 a, b, c가 주어지는데, a번 정점에서 b번 정점까지 양방향 길이 존 www.acmicpc.net 문제! 방향성이 없는 그래프가 주어진다. 세준이는 1번 정점에서 N번 정점으로 최단 거리로 이동하려고 한다. 또한 세준이는 두 가지 조건을 만족하면서 이동하는 특정한 최단 경로를 구하고 싶은데, 그것은 바로 임의로 주어진 두 정점은 반드시 통과해야 한다는 것이다. 세준이는 한번 이동했던 정점은 물론, 한번 이동했던 간선도 다시 이동할 수 있다. 하지만 반드시 최단 경로로 이동해야 한다는 사실에 주의하라. 1번 정점에서.. 2023. 6. 6.
[ 백준 1238 ] 파티 (C++) 1238번: 파티 첫째 줄에 N(1 ≤ N ≤ 1,000), M(1 ≤ M ≤ 10,000), X가 공백으로 구분되어 입력된다. 두 번째 줄부터 M+1번째 줄까지 i번째 도로의 시작점, 끝점, 그리고 이 도로를 지나는데 필요한 소요시간 Ti가 들어 www.acmicpc.net 문제! N개의 숫자로 구분된 각각의 마을에 한 명의 학생이 살고 있다. 어느 날 이 N명의 학생이 X (1 ≤ X ≤ N)번 마을에 모여서 파티를 벌이기로 했다. 이 마을 사이에는 총 M개의 단방향 도로들이 있고 i번째 길을 지나는데 Ti(1 ≤ Ti ≤ 100)의 시간을 소비한다. 각각의 학생들은 파티에 참석하기 위해 걸어가서 다시 그들의 마을로 돌아와야 한다. 하지만 이 학생들은 워낙 게을러서 최단 시간에 오고 가기를 원한다. .. 2023. 6. 5.
[ 백준 1167 ] 트리의 지름 (C++) 1167번: 트리의 지름 트리가 입력으로 주어진다. 먼저 첫 번째 줄에서는 트리의 정점의 개수 V가 주어지고 (2 ≤ V ≤ 100,000)둘째 줄부터 V개의 줄에 걸쳐 간선의 정보가 다음과 같이 주어진다. 정점 번호는 1부터 V까지 www.acmicpc.net 문제! 트리의 지름이란, 트리에서 임의의 두 점 사이의 거리 중 가장 긴 것을 말한다. 트리의 지름을 구하는 프로그램을 작성하시오. 간단하네요... 입력은 차례대로 5 // 정점의 갯수 1 3 2 -1 // 정점의 번호 // 연결된 정점 // 그 정점과의 거리 2 4 4 -1 3 1 2 4 3 -1 4 2 4 3 3 5 6 -1 5 4 6 -1 // -1이면 끝! 순서대로 받아옵니다. 이제 정점간의 가장 긴 거리 = 트리의 지름 을 구해야합니다... 2023. 6. 4.
코딩테스트 -- 광물 캐기 - (프로그래머스 / C++) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제요약! 3가지의 곡갱이로 3가지 광물을 캘때 최소의 피로도를 구하는 문제입니다! 조건으로는 1. 한 곡갱이로 5개까지 캘수있다. 2. 한번 든 곡갱이는 끝까지사용해야한다. 3. 곡갱이를 모두 사용하면 완료된 것으로 취급한다. 이정도로 풀어낼수있을것 같습니다! 처음엔 단순 피로도 계산인줄 착각하고 있었는데 사실 곡괭이의 사용 순서가 중요한 문제였습니다. 만약 ["iron", "diamond", "diamond", "diamond", "iron", "diamond", "diamond", "diamond", ".. 2023. 5. 5.
코딩테스트 -- 두 원 사이의 정수 쌍- (프로그래머스 / C++) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제는 단순히 두 원 사이의 점의 갯수를 구하는 문제였습니다. 조건도 아래 1개가 끝 1. 선위에 있는 점들은 포함 일단 시작은 두 원의 1/4만큼의 점의 갯수를 세어주고 *4하는 방식으로 시도해 보았습니다. 그렇게 만들어진 코드... int BR=max(r1,r2); int SR=min(r1,r2); long long Bans=0; long long Sans=0; long long temp = 0; for(int i=0;i 2023. 5. 2.
코딩테스트 -- 연속된 부분 수열의 합 - (프로그래머스 / C++) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제! 비내림차순으로 정렬된 수열이 주어질 때, 다음 조건을 만족하는 부분 수열을 찾으려고 합니다. 1.기존 수열에서 임의의 두 인덱스의 사이 원소를 모두 포함해야한다 2. 부분수열의 합은 k 3. 부분수열이 가장짧은 수열/ 가장 앞에 나오는 수열을 찾아야한다. 위의 3가지 조건을 만족하는 부분수열을 찾는 문제였습니다. 저는 먼저 부분합 배열을 만들어 주고 합이 k가 되는 모든 수열 인덱스를 저장해두고 정렬을 시켰으나... 시간초과 나네요.. 더보기 #include #include #include #inclu.. 2023. 5. 1.