[Week 2] CLOCKSYNC self review - yujungee
Closed this issue · 0 comments
yujungee commented
CLOCKSYNC self review
1. 해결 시도 과정
스위치마다 조작 가능한 시계의 개수가 다르니 벡터로 만들어야겠다고 생각.
2. 아이디어
3. 코드 설명
#include <iostream>
#include <vector>
using namespace std;
vector<vector<int>> v =
{
{0,1,2},
{3,7,9,11},
{4, 10, 14, 15},
{0, 4, 5, 6, 7},
{6, 7, 8, 10, 12},
{0, 2, 14, 15},
{3, 14, 15},
{4, 5, 7, 14, 15},
{1, 2, 3, 4, 5},
{3, 4, 5, 9, 13}
};
벡터에 주어진 스위치에 대한 시계 번호를 저장
int pushSwitch(int *clock){
return 0;
}
int pushSwitch(int *clock){
int answer = 0;
int cnt=0;
for (int i=0; i<16; i++) {
if (clock[i] != 12) {
for (int j=0; j<10; j++) {
for (int c=0; c<v[i].size(); c++) {
if (v[j][c] == i) {
clock[c] += 3;
cnt++;
break;
}
}
}
}
}
return answer;
}
i번째 시계가 12시가 아닐 때, j번째 스위치에 i번째가 있으면 i번째 스위치를 누르고 해당 시계를 모두 3시간씩 늘린다. 스위치 이용 수인 cnt를 +1 해준다.
최소를 구하는 부분은 구현하지 못했다.
입출력
int main() {
int c, time;
int clock[12];
cin >> c;
while(c--){
for (int j=0; j<16; j++) {
cin >> time;
clock[j] = time;
}
}
pushSwitch(clock);
return 0;
}
4. 막힌 점 및 개선 사항
해당 스위치와 연결된 모든 시계들의 시간은 3시간씩 앞으로 움직여서 하나만 생각하는게 아니라 연결된 모든 시계를 고려해야 하는 점이 발목을 잡았다.