본문 바로가기

SWEA

(48)
[SWEA] 1249. 보급로 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV15QRX6APsCFAYD SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 풀이 * 다익스트라 알고리즘으로 최단 경로를 구한다. * 이 문제의 경우 "최단 경로"가 답이 되는 TC도 있지만, 조금 돌아가더라도 "복구 시간"이 가장 짧은 것을 정답으로 한다. * 그렇기 때문에 방문 표시를 단순히 좌표로 하면 안된다. (조금 돌아갔을 때 복구 시간이 더 짧을 수도 있는데, 이미 방문 표시가 되어있어서 못 가는 경우가 있다) * 방문을 표시하는 visited 는 3차원으로 설정..
[SWEA] 4613. 러시아 국기 같은 깃발 문제 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWQl9TIK8qoDFAXj&categoryId=AWQl9TIK8qoDFAXj&categoryType=CODE SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 풀이 * 조합을 사용해서 백트래킹을 하며 모든 경우를 다 해본다. * 첫 행과 마지막 행은 흰색 / 빨간색으로 고정된다. 2행부터 n-1 행까지의 조합을 구한다. * 조합을 구할 때 파란색이 반드시 포함되어야 한다. * W = 1 B = 2 R = 3 으로 치환을 했다. 색을 칠 할 때 이전의 행에 칠해진 색과 ..
[SWEA] 1824. 혁진이의 프로그램 검증 문제 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV4yLUiKDUoDFAUx&categoryId=AV4yLUiKDUoDFAUx&categoryType=CODE SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 풀이 * dfs를 이용해서 탐색을 진행한다. * @를 만나면 flag 를 True로 만들고 탐색을 종료한다. * 갔던 곳을 또 가지 않도록 방문 표시를 한다. 하지만, 프로그램 상 메모리에 있는 값에 따라 다른 처리를 하는 연산이 있기 때문에 visited 배열에 방문했던 당시의 메모리값(buf)을 저장하고, ?..
[모의 SW 역량테스트] 차량 정비소 문제 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV6c6bgaIuoDFAXy SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 풀이 * 시간 0부터 들어온 고객을 접수 창구에 배정한다. 이 때, 접수 창구가 꽉 차서 배정되지 못한 고객은 대기 배열에 넣는다. (waitA) * USER 완료하면 정비 창구 대기열에 넣는다. 3) inputWaitingB() : 정비 창구 대기열에 잇는 사람들을 정비 창구에 넣는다. *** 정비 창구가 꽉 차서 들어가지 못한 사람들은 wait를 1씩 증가시켜준다. (wait가 클 수록 더..
[모의 SW 역량테스트] 수영장 문제 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PpFQaAQMDFAUq SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 풀이 * 완탐으로 해결 가능 => 월을 기준으로 모든 조합을 다 구한다. * 먼저 1년은 모든 월을 커버할 수 있기 때문에 최소값으로 1년 요금으로 정한다. * 1일과 1달은 '한' 달을 기준으로 보기 때문에 idx+1 로 월을 하나만 늘려주고, 3달은 idx+3으로 3달 후를 보도록 한다. 1일은 그 달에 수영장을 이용한 횟수만큼 요금을 더해주며 최소값을 구한다. #include #inclu..
[모의 SW 역량테스트] 벌꿀채취 문제 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5V4A46AdIDFAWu 불러오는 중입니다... 풀이 * 완전 탐색 * 각 row에서 m만큼 벌통들을 보면서 최대 C이하가 되는 최적의 조합을 구해야 한다. * cost[][] 에는 현재 위치에서 m만큼 봤을 때 채취할 수 있는 벌꿀의 최대 수익을 저장한다. * 전체 맵을 순회하면서 서로 겹치지 않는 두 지점의 최대 수익의 합을 구한다. #include #include #include using namespace std; int n, m, c; int map[11][11]; int cost[11][11]; bool chk[6]; int value = 0; t..
[SW Test 샘플문제] 프로세서 연결하기 * dfs 조합을 이용해서 최대한 많은 core들을 연결했을 때 최소 전선의 길이를 구한다. * 맵의 사이드에 있는 코어들은 이미 연결되어있기 때문에 cores에는 그 외의 코어들을 넣는다. * dfs(idx, cnt)에서는 코어들을 조합을 확인하면서 백트래킹한다. * check(x, y, d) : x, y 좌표에 있는 코어가 d방향으로 연결될 수 있으면 T, 아니면 F doConnect(x, y, d) : check() 가 T라면 연결한다. (chk 배열에 방문표시) doDisConnect(x, y, d) : 원상 복귀 (백트래킹) #include #include #include #define INF 987654321 using namespace std; int n; int map[13][13]; bo..
[SWEA] 보물상자 비밀번호 [문제] https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWXRUN9KfZ8DFAUo SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! www.swexpertacademy.com [풀이] 1.convertToDe() => (문자열 사이즈 /4)를 한 길이의 문자열 4개를 10진수로 바꾸어서 int 배열에 저장한다. (16진수임을 명시 해야 함.) 백터에 정수들을 저장 2. rotate() => 입력받은 문자열의 가장 마지막 문자열을 맨 앞으로 가져온다. (한 문자씩 시계방향으로 움직이기 때문에 각 회전마다 변경되는 건 맨 뒤의 문자열 뿐이다.) 3. 백터를 ..