반응형

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

 

10171번: 고양이

아래 예제와 같이 고양이를 출력하시오.

www.acmicpc.net

문제

아래 예제와 같이 고양이를 출력하시오.

입력

없음.

출력

고양이를 출력한다.


접근방법

이스케이프 시퀀스를 이용한다

백슬래시를 입력하고 싶은 경우 \\ << 이렇게 백슬래시 뒤에 \를 입력해준다

이게 지금은... 원 표시로 보이는데 코드 작성할땐 백슬래시임...

 

\n 대신에 << endl 를 사용해줘도 될 것 같지만 \n을 사용해서 풀었다

코드

#include<iostream>
using namespace std;

int main()
{
	cout << "\\    /\\\n";
	cout << " )  ( ')\n";
	cout << "(  /  )\n";
	cout << " \\(__)|\n";
}

 

반응형

'study > 백준' 카테고리의 다른 글

[백준] 10172.개 : C++  (0) 2022.01.17
[백준] 10817. 세 수 : python  (0) 2022.01.17
[백준] 1977. 완전제곱수 : C++  (0) 2021.12.31
[백준] 2530. 인공지능 시계 : python  (0) 2021.12.19
[백준] 2525. 오븐 시계 : python  (0) 2021.12.19
반응형

 

 

파이참에서는 이렇게 폴더로 문제를 분류해서 알고리즘을 정리하였는데

비주얼 스튜디오에서 백준 문제를 풀기위해 매번 새로운 프로젝트를 생성하고 있으니

이게...맞나...? 하는 생각이 들었다.

물어볼 사람이 없어서 그냥 그렇게 하던 중이었는데(아직 C++ 배열 만드는 법을 몰라서 몇문제 안풀었음)뭔가 무언가... 설명도 못하겠고 맞는지도 모르겠지만 프로젝를 생성할때 마다 생기는 저 외부종속성 내의 파일들이 나의 메모리를 낭비 중이라는 생각이 들어서 찾다 찾다 찾았다!

 

사진처럼 소스파일에 .cpp 파일을 생성해서 빌드하면

  • 오류 LNK2005 _main이(가) boj_start.obj에 이미 정의되어 있습니다.
  • 오류 LNK1169 여러 번 정의된 기호가 있습니다.

라는 오류가 생성되는데 이 오류를 해결하는 방법은

1. 사용하지 않는 소스 마우스 오른쪽 클릭 후 속성 접속

2. 빌드에서 제외 항목을 '예'로 변환

3. 확인 후 빌드 할 항목 빌드!

이제 두번째 파일도 빌드가 되는걸 확인할 수 있다!

반응형
반응형

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

 

1977번: 완전제곱수

M과 N이 주어질 때 M이상 N이하의 자연수 중 완전제곱수인 것을 모두 골라 그 합을 구하고 그 중 최솟값을 찾는 프로그램을 작성하시오. 예를 들어 M=60, N=100인 경우 60이상 100이하의 자연수 중 완

www.acmicpc.net

문제

M과 N이 주어질 때 M이상 N이하의 자연수 중 완전제곱수인 것을 모두 골라 그 합을 구하고 그 중 최솟값을 찾는 프로그램을 작성하시오. 예를 들어 M=60, N=100인 경우 60이상 100이하의 자연수 중 완전제곱수는 64, 81, 100 이렇게 총 3개가 있으므로 그 합은 245가 되고 이 중 최솟값은 64가 된다.

입력

첫째 줄에 M이, 둘째 줄에 N이 주어진다. M과 N은 10000이하의 자연수이며 M은 N보다 같거나 작다.

출력

M이상 N이하의 자연수 중 완전제곱수인 것을 모두 찾아 첫째 줄에 그 합을, 둘째 줄에 그 중 최솟값을 출력한다. 단, M이상 N이하의 자연수 중 완전제곱수가 없을 경우는 첫째 줄에 -1을 출력한다.


 C++ 코드

#include <iostream>

int main()
{
    int M, N;
    
    std::cin >> M;
    std::cin >> N;

    int i = 1;
    int sum = 0;
    int min = 789456123;
    while (true) {
        int ans = 0;
        ans = i * i;
        if (ans >= M && ans <= N) {
            sum += ans;
            if (ans < min) {
                min = ans;
            }
        }
        else if (ans > N) {
            break;
        }
        i++;
    }
    if (sum <= 0) {
        std::cout << -1;
    }
    else {
        std::cout << sum << "\n" << min;
    }
}

풀이

완전제곱수 = i * i

i가 하나씩 커지면서 만들 수 있는 모든 완전제곱수를 만든다.

만들어진 완전제곱수의 범위가 주어진 범위내일 경우 sum에 값을 더하고 초과하면 while문을 나온다

만약 sum 이 0 일경우 -1 값이 없으므로 -1 출력한다

반응형

+ Recent posts