작성
·
103
0
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
http://boj.kr/604e8201aae24300845cde414a1f4416
http://boj.kr/604e8201aae24300845cde414a1f4416
선생님 강의보고 생각하면서 유사하게 만들어봤는데 틑렸다고 나옵니다 ㅠㅠ 정답 코드랑 비교해도 어떤 부분이 틀렸는지 확인이 안되서 ㅠㅠ 질문 남깁니다. 감사합니다.
답변 1
0
안녕하세요 jjune님 ㅎㅎ
visited[arr[i]] = 1;
v.push_back(arr[i]);
}
}
이게 이렇게 넣어져야 하지 않을까요?
그리고.. back_index의 초기값은 -1이여야 합니다.
if (v.size() == n){
int back_index = -1, pos;
수정된 전체 코드
#include <bits/stdc++.h>
using namespace std;
int n, k, result = 0;
int visited[105], arr[105];
vector<int> v;
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
cin >> n >> k;
for (int i = 0; i < k; i++) {
cin >> arr[i];
}
for (int i = 0; i < k; i++) {
if (!visited[arr[i]]) {
if (v.size() == n){
int back_index = -1, pos;
for (int a : v) {
int find_index = 987654321;
for (int j = i + 1; j < k; j++) {
if (a == arr[j]) {
find_index = j;
break;
}
}
if (back_index < find_index) {
back_index = find_index;
pos = a;
}
}
visited[pos] = 0;
v.erase(find(v.begin(), v.end(), pos));
result++;
}
visited[arr[i]] = 1;
v.push_back(arr[i]);
}
}
cout << result;
}
감사합니다.
으억... visited가 거기있었다니... ㅠㅠㅠㅠㅠ {}가 많아서 헷갈린거 같습니다 ㅠㅠ