article thumbnail image
Published 2022. 9. 21. 21:58

문제: https://www.acmicpc.net/problem/10871

 

 

처음엔 vector를 사용해서 풀었는데, 이 문제에 vector까진 사용할 필요 없어보여서 코드를 수정하고 다시 제출했다.

문제에서는 수열이 입력으로 주어져서 배열을 사용할까 했지만, 각 요소마다 X보다 작은지만 확인해주면 되어서 배열은 사용하지 않았다.

 

 

 

: 처음 제출한 코드

#include <iostream>
using namespace std;
int main()
{
  int n, x, item;
  cin >> n >> x;
  for (int i = 0; i < n; i++)
  {
    cin >> item;
    (item < x) && cout << item << ' ';
  }
}

n과 x를 입력받은 후 반복문을 n번만큼 돌아서 수열을 입력받고, 바로바로 X와 비교하는 방법이다.

위 코드로 문제를 해결할 수는 있었지만, 채점 현황을 보니  시간이 0ms인 사람이 있었다.

그 사람의 코드를 보니 ios::sync_with_stdio(0)cin.tie(0)를 사용한 점에서 내 코드와 차별점이 있었다.

사실 바킹독 강의를 볼 때도 이에 대한 설명이 있었지만 직접 적용해볼 생각은 못했다.

바로 내 코드에도 적용하고 채점했더니, 나도 0ms로 해결할 수 있었다.

 

ios::sync_with_stdio(0)와 cin.tie(0)에 대해서 나중에 따로 정리해봐야겠다.

 

 

 

: 나중에 제출한 코드

#include <iostream>
using namespace std;
int main()
{
  ios::sync_with_stdio(0);
  cin.tie(0);
  int n, x, item;
  cin >> n >> x;
  for (int i = 0; i < n; i++)
  {
    cin >> item;
    (item < x) && cout << item << ' ';
  }
}

 

 

 

=> 런타임 에러는 vector로 풀이할 때 배열 참조를 잘못해서 발생했다...ㅎ

 

 

 

 

 

'알고리즘' 카테고리의 다른 글

[BOJ] 2309: 일곱 난쟁이  (1) 2022.09.21
[BOJ] 2490: 윷놀이  (1) 2022.09.21
[HackerRank] Mini-Max Sum  (0) 2021.11.21
[HackerRank] Sherlock and Array  (0) 2021.11.21
[HackerRank] Plus Minus  (0) 2021.11.05
복사했습니다!