728x90
반응형
https://www.acmicpc.net/problem/1244
1. Logic
남학생은 배로수 바꿔주면 쉽지만 여학생이 문제이다.
여학생이 받은 번호 기준으로 왼쪽 오른쪽이 같으면 바꿔주고 다르면 바꿔주면 안된다. 그래서 while문의 조건을 swit[start] == swit[end]로 잡아줬다.
그리고 20개마다 줄 바꿔주는것을 잘 신경쓰면 된다!
2. Code
#include <bits/stdc++.h>
using namespace std;
int n, m;
bool swit[101];
void manSwitch(int num) {
for(int i = num; i <= n; i += num) {
swit[i] = !swit[i];
}
}
void womanSwitch(int num) {
swit[num] = !swit[num];
int start = num-1;
int end = num+1;
while(swit[start] == swit[end]) {
if(start == 0 || end == n+1) return;
swit[start] = !swit[start];
swit[end] = !swit[end];
start--; end++;
}
return;
}
int main() {
ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);
cin >> n;
for(int i = 1; i <= n; i++) {
cin >> swit[i];
}
cin >> m;
for(int i = 0; i < m; i++) {
int gender, light;
cin >> gender >> light;
if(gender == 1) {
manSwitch(light);
}
else if(gender == 2) {
womanSwitch(light);
}
}
for(int i = 1; i <= n; i++) {
cout << swit[i] << " ";
if(i % 20 == 0) cout << "\n";
}
}
알고리즘 Solve 후 제가 생각한 Logic을 기록하는 개인 공부 블로그입니다.
내용 중 최적화가 가능한 부분등은 언제든지 댓글로 틀린 부분 및 피드백 주시면 공부 및 반영하겠습니다🧐
728x90
반응형
'Algorithm > Beakjoon' 카테고리의 다른 글
[백준/Baekjoon] 2468 안전 영역 C++ :: BFS (0) | 2023.11.24 |
---|---|
[백준/Baekjoon] 3015 오아시스 재결합 C++ :: Data Structure (0) | 2023.11.22 |
[백준/Baekjoon] 25757 임스와 함께하는 미니게임 C++ :: Data structure (1) | 2023.11.21 |
[백준/Baekjoon] 4673 셀프 넘버 C++ :: Implementation & Brute force (1) | 2023.11.20 |
[백준/Baekjoon] 진우의 달 여행 17484 C++ :: Brute force & Dynamic programming (1) | 2023.11.18 |