Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

4-g0rnn #15

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open

4-g0rnn #15

wants to merge 1 commit into from

Conversation

g0rnn
Copy link
Collaborator

@g0rnn g0rnn commented Oct 11, 2024

🔗 문제 링크

[브루트 포스] 영화감독 숌 : https://www.acmicpc.net/problem/1436

✔️ 소요된 시간

15m

✨ 수도 코드

숫자를 하나씩 더해가면서 종말의 수 인지 확인하면 됩니다.

처음엔 연산횟수도 많고 값을 비교하기 위해 string으로 타입까지 변환하면 시간이 좀 오래 걸릴거라 생각했는데 C/C++은 1초에 연산을 10억번 할 수 있다네요..
입력의 시간을 https://www.acmicpc.net/blog/view/56 를 통해 단축시키니 52ms만에 문제를 풀 수 있었습니다.

📚 새롭게 알게된 내용

pr을 쓰면서 다시보니 출력도 cout.tie(NULL)을 해주면 더 빨라지는 것 같네요
문제는 cout과 cin을 코드 한줄차이로 작성하면 buffer를 덮어버리기 때문에 제대로된 출력이 발생하지 않을 수 있다는 것만 유의하면 될것 같아요

Copy link
Collaborator

@kangrae-jo kangrae-jo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

저도 이렇게

 if (num[i] == '6' && num[i + 1] == '6' && num[i + 2] == '6')

연속해서 3번 6이 나오는 경우에 집중해서 만들어보려고 했습니다.
그런데 num을 문자열로 만들면서 구현하던 도중에,
c++ string에서도 find를 쓸 수 있다는 사실이 떠올랐습니다.
"666"을 find하면 되지 않을까 해서 그렇게 코드를 짜봤습니다.

c++ 코드
#include <iostream>
#include <string>
using namespace std;

int main (){
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);

    int N;
    cin >> N;

    int num = 665;
    string temp;
    while (1){
        num++;
        temp = to_string(num);

        if (temp.find("666") != -1) N--;
        if (N == 0) break;
    }
    cout << num;
    return 0;
}

https://cplusplus.com/reference/string/string/find/
(저도 string type에 find가 있다는 것만 알았어서 다시 공부좀 했습니다.)

@kokeunho
Copy link
Collaborator

첨부해주신 자료를 보니 python3에서 int(input()) 입력을 받으니 시간이 상당히 많이 걸리네요...저도 풀어봤는데 616ms나 나왔습니다...
이번 PR도 수고하셨습니다~

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants