본문 바로가기

Softeer7

[C++, Python] Softeer Lv2 나무공격 https://softeer.ai/practice/9657 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai풀이환경파괴범에 대해 나무 공격을 진행하려 합니다. 환경 파괴범 위치 정보는 n, m 크기 격자에서 0, 1로 주어집니다. 공격은 2번 진행되며 한번 공격시 5행을 차지합니다. 공격 시작과 끝 행에 대한 정보는 l, r로 주어집니다.  2차원 맵을 만들어 완전탐색을 하려 했으나,행별로 환경 파괴범 수를 기록해두고 공격 행에 대한 정보가 주어지면 해당 행에서 빼주는 방법을 사용하면 쉽게 답을 구할 수 있습니다. 이 때, 이미 해당 행에 환경파괴범이 없다면 제외합니다. C++#include#includeusing namespace std;int main(int argc, char**.. 2024. 8. 1.
[C++] 소프티어 금고털이 [Greedy] https://softeer.ai/practice/formCodeEditor.do Softeer 405 ERROR 지금 입력하신 주소의 페이지는 사라졌거나 다른 페이지로 변경되었습니다. 주소를 다시 확인해주세요. 홈으로 이전 페이지 softeer.ai 풀이 무게 당 가격이 주어질 때, 가방을 채울 수 있는 최대 가치를 구하는 문제입니다. 1단위로 쪼개서 가방을 채울 수 있으므로, 가치가 높은 것부터 최대로 채우는 것이 정답이 됩니다. 따라서, 금속 가치에 따라 내림차순 정렬 후 그리디 하게 처리하면 해결할 수 있는 간단한 문제입니다. #include #include #include using namespace std; int W, N, M, P, ans=0; bool cmp(pair& a, pair& b.. 2023. 3. 6.
[C++] 소프티어 [인증평가(1차) 기출] 로봇이 지나간 경로 https://softeer.ai/practice/info.do?idx=1&eid=577&sw_prbl_sbms_sn=136100 Softeer 연습문제를 담을 Set을 선택해주세요. 취소 확인 softeer.ai 풀이 1. 경로 탐색이기 때문에 BFS로 문제를 해결했다. DFS로 풀어도 답은 동일하다. 2. Robot 구조체에는 현재 위치와, 방향을 담을 수 있는 변수(row, col, direction) 그리고 회전 후 전진을 판단하는 rotate 함수가 포함된다. 3. 출발 위치를 찾는 방법은, 현재 '#' 위치에서 4방향을 탐색한 후 '#'이 한개만 나온다면 그곳을 출발지점 및 방향으로 설정했다. 4. 커맨드를 담기위한 cmd 벡터를 선언했고, BFS 를 돌면서 방문한 지점은 0으로 바꿔준다(방문.. 2023. 1. 24.
[C++] 소프티어 [인증평가(5차) 기출] 업무 처리 https://softeer.ai/practice/info.do?idx=1&eid=1256&sw_prbl_sbms_sn=135973 Softeer 연습문제를 담을 Set을 선택해주세요. 취소 확인 softeer.ai 업무는 R일 동안 진행된다. 처음에 말단 직원들만 각각 K개의 순서가 정해진 업무를 가지고 있다. 각 업무는 업무 번호가 있다. 각 날짜에 남은 업무가 있는 경우, 말단 직원은 하나의 업무를 처리해서 상사에게 올린다. 다른 직원들도, 대기하는 업무가 있는 경우 업무를 올라온 순서대로 하나 처리해서 상사에게 올린다. 단, 홀수 번째 날짜에는 왼쪽 부하 직원이 올린 업무를, 짝수 번째 날짜에는 오른쪽 부하 직원이 올린 업무를 처리한다. 부서장이 처리한 일은 완료된 것이다. 업무를 올리는 것은 모.. 2023. 1. 24.
[C++] 소프티어 [인증평가(5차) 기출] 성적 평가 https://softeer.ai/practice/info.do?idx=1&eid=1309 Softeer 연습문제를 담을 Set을 선택해주세요. 취소 확인 softeer.ai 현주는 N명의 인원이 참여하는 프로그래밍 스터디 그룹을 이끌고 있다. 현주는 스터디를 위해 대회를 세 개 개최하였고, 모든 구성원이 각 대회에 참여하였다. 참가자는 각 대회에서 0 이상 1,000 이하의 정수인 점수를 얻는다. 한 대회에서 둘 이상의 참가자가 동점이 나오는 경우도 있을 수 있다. 현주는 각 대회별 등수 및 최종 등수를 매기고 싶다. 등수는 가장 점수가 높은 사람부터 1등, 2등, ···, N등의 순서대로 붙는다. 만일 동점이 있을 경우 가능한 높은 (등수의 수가 작은) 등수를 부여한다. 즉, 점수가 내림차순으로 10.. 2023. 1. 23.
[C++] 소프티어 [인증평가(4차) 기출] 슈퍼컴퓨터 클러스터 https://softeer.ai/practice/info.do?idx=1&eid=1204 Softeer 연습문제를 담을 Set을 선택해주세요. 취소 확인 softeer.ai 풀이 업그레이드를 위한 비용 B가 책정되어 있을 때, B원 이하로 성능이 가장 낮은 컴퓨터의 성능을 최대화 하고 싶다. 이 때, 성능이 가장 낮은 컴퓨터의 성능으로 가능한 최대값을 찾아야 한다. 1. 제한 조건의 범위가 크기 때문에 이분탐색을 사용해서 문제를 풀었다. 2. 이때, 답(mid)은 성능이 가장 낮은 컴퓨터의 성능 최대값으로 가정하고, 성능이 10^9 인 컴퓨터 1대에 10^18의 비용을 들여서 업그레이드를 할 경우, 성능은 10^9 + 10^9 = 2*10^9 이므로 right = 2*10^9로 설정하고 알고리즘을 돌리.. 2023. 1. 18.
[C++] 소프티어 [인증평가 4차 기출] 통근버스 출발 순서 검증하기 https://softeer.ai/practice/info.do?idx=1&eid=654 Softeer 문제에서 주어진 조건을 만족하는 서로 다른 (i, j, k) 순서쌍의 개수를 출력한다. 첫 번째 위치에는 2번 버스, 두 번째 위치에는 3번 버스, 그리고 세 번째 위치에는 1번 버스가 기다 softeer.ai 풀이 정렬 불가능한 조합이 몇 개나 있는지 세는 문제이다. Brute-Force로 모든 조합에 대해 검사할 경우 O(N^3)이기 때문에 5000^3 = 125,000,000,000 (1250초?) 이므로 다른 알고리즘이 필요하다. Prefix Sum, 구간 합 개념을 사용한다면 O(N^2) 25,000,000 으로 1초 안에 계산을 마칠 수 있다. 1. 문제 조건에 의해 i < j < k 에 대.. 2023. 1. 18.