happy318
팽도리블로그
happy318
전체 방문자
오늘
어제
  • 전체글 (252)
    • 공부 (5)
      • Algorithm 정리 (0)
      • 논문리뷰 (1)
      • C++ (2)
      • Python (2)
      • Java (0)
      • Back-end (0)
      • Front-end (0)
      • Embedded (0)
    • 코딩테스트 (218)
      • Python 문제풀이 (100)
      • C++ 문제풀이 (108)
      • Python template (9)
      • C++ template (1)
    • 일상 (20)
      • 맛집 (13)
      • 쇼핑 (5)
      • 아무 일상 (2)
    • 게임 (9)
      • 메이플스토리 (9)

최근 글

인기 글

hELLO · Designed By 정상우.
happy318

팽도리블로그

코딩테스트/C++ 문제풀이

[백준] 3의 배수

2023. 3. 20. 20:34

https://www.acmicpc.net/problem/1769

 

1769번: 3의 배수

문제가 잘 풀리지 않을 때, 문제를 바라보는 시각을 조금만 다르게 가지면 문제가 쉽게 풀리는 경험을 종종 해 보았을 것이다. 여러 가지 방법이 있지만 그 중 하나로 우리가 풀고 싶은 문제를

www.acmicpc.net

우선 문제부터 간단하게 요약하면, 

 

3의 배수 판별법으로 1~1,000,000 자리수를 판별하려 할 때, 몇번의 변환이 일어나는가에 대한 문제입니다.

 

<Solution>

우선 input으로 들어오는 1백만 자리 숫자는 int 뿐만 아니라 long long 등의 자료구조로도 커버할 수 없습니다. 

 

그래서 이 input을 한번 변환을 거쳐 int등으로 바꾼 다음 처리를 하면 됩니다. 

 

실제 구현은 아래와 같습니다. 

#include <iostream>
#include <string>
#include <cstring>

using namespace std;

char number[1000000+10];
int conversionCount;

int main(){

    cin >> number;
    int k = 0;
    if(strlen(number) != 1){
        // 첫 변환을 하면 int로 처리가능
        for(int i = 0; i<strlen(number); i++){
            k += number[i]-'0';
        }
        conversionCount++;
        while(k>=10){
            conversionCount++;
            int tmpK = 0;
            while(k >= 10){
                tmpK += k%10;
                k/=10;
            }
            tmpK += k;
            k = tmpK;
        }    
    }
    else k = number[0]-'0';

    cout << conversionCount << endl;
    if(k == 3 || k == 6 || k == 9) cout << "YES" << endl;
    else cout << "NO" << endl;

    return 0;
}
반응형

'코딩테스트 > C++ 문제풀이' 카테고리의 다른 글

[LeetCode] Zigzag Conversion  (1) 2023.03.21
[LeetCode] Path Sum II  (0) 2023.03.21
[백준] 줄 세우기  (0) 2023.03.12
[백준] 용액  (0) 2023.03.12
[백준] 부분합  (0) 2023.03.05
    '코딩테스트/C++ 문제풀이' 카테고리의 다른 글
    • [LeetCode] Zigzag Conversion
    • [LeetCode] Path Sum II
    • [백준] 줄 세우기
    • [백준] 용액
    happy318
    happy318

    티스토리툴바