saurus2
Saurus2
saurus2
전체 방문자
오늘
어제
  • 분류 전체보기
    • 개발
      • AJAX
    • ML Ops
    • Profile
    • 음식점
    • 배낭여행
    • 컴퓨터공학
      • 알고리즘 공부
      • C++
      • Sever 스터디
      • Java spring
      • 알고리즘 _ 문제해결
      • 딥러닝
      • Java 정리
      • Python
      • LeetCode 1000
      • Machine Learning Study
      • Sign language Detection Pro..
      • LeetCode Solutions
    • 비콘
    • 데일리 리포트
    • 유학일기
      • 영어 공부
      • Daily
    • AI Master Degree
      • Data Mining
      • AI and Data engineering
      • Math Foundations for Decisi..
      • Natural Language Processing

블로그 메뉴

  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록

공지사항

인기 글

태그

  • 취업준비
  • DFS
  • 알고리즘문제해결
  • LeetCode
  • BFS
  • 릿코드
  • Python
  • two pointer
  • 개발자
  • 문제해결능력
  • 파이썬
  • 딕셔너리
  • 취준
  • 백준
  • c++
  • 개발자 취업준비
  • 딥러닝
  • 온라인저지
  • 알고리즘
  • 리트코드

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
saurus2

Saurus2

컴퓨터공학/알고리즘 _ 문제해결

백준 알고리즘 2934 소음 문제!

2016. 12. 22. 20:00

2934번 소음 문제 !

소음 성공

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


입력

첫째 줄에 양의 정수 A가 주어진다.

둘째 줄에 연산자 + 또는 *가 주어진다.

셋째 줄에 양의 정수 B가 주어진다.

A와 B는 모두 10의 제곱 형태이고, 길이는 최대 100자리이다.

출력

첫째 줄에 결과를 출력한다. 결과는 A+B 또는 A*B이며, 입력에서 주어지는 연산자에 의해 결정된다. 

예제 입력 

1000
*
100

예제 출력 

100000



처음에 간단한 문제인 줄 알고 long long int 썼다가 문제를 다시 읽어보니 100자리 10^100승 까지 커버해야 되는 것을 깨달음.

배열에 0출력 루프 밖에 생각안나서 그렇게 풀었음, 크기가 같을 땐 2로 해주고 자릿수 만큼 출력


+

a>b 일땐 a배열을 b-a 만큼 출력후 1이 아닌 b의 0 갯수만큼 출력 반대의 경우도 같은 방식으로 출력


#include <iostream>


using namespace std;

int main(){

    char a[101]={0,},b[101]={0,};

    char op[1];

    cin>>a>>op[0]>>b;

    if(op[0]=='*'){

        cout << a;

        int end = 1;

        while(true){

            if(b[end] == '\0') break;

            end++;

            cout << "0";

        }

    }

    else {

        int asize =0, bsize =0;

        while(true){

            if(a[asize] == '\0') break;

            asize++;

        }

        while(true){

            if(b[bsize] == '\0') break;

            bsize++;

        }

        if(asize==bsize)

        {

            cout << "2";

            for(int i = 0;i < asize-1; i++)

                cout << "0";

        }else if(asize>bsize){

            for(int i = 0; i < asize-bsize; i++)

                cout <<a[i];

            for(int j = 0; j < bsize; j++)

                cout <<b[j];

        }else{

            for(int i = 0; i < bsize-asize; i++)

                cout <<b[i];

            for(int j = 0; j < asize; j++)

                cout <<a[j];

        }

    }

}

저작자표시 (새창열림)

'컴퓨터공학 > 알고리즘 _ 문제해결' 카테고리의 다른 글

10799 쇠막대기 백준 알고리즘 문제 스택  (0) 2017.01.08
1063 king 킹 시뮬레이션 백준 알고리즘 !  (0) 2017.01.04
1408 24 백준 알고리즘 온라인저지  (0) 2016.12.26
11653 소인수 분해 문제 백준 알고리즘  (0) 2016.12.22
2163 초콜릿 자르기 Dynamic Programing 백준  (0) 2016.12.21
    '컴퓨터공학/알고리즘 _ 문제해결' 카테고리의 다른 글
    • 1063 king 킹 시뮬레이션 백준 알고리즘 !
    • 1408 24 백준 알고리즘 온라인저지
    • 11653 소인수 분해 문제 백준 알고리즘
    • 2163 초콜릿 자르기 Dynamic Programing 백준
    saurus2
    saurus2
    Simple is Best

    티스토리툴바