C++/C++ 알고리즘

백준 17362번 수학은 체육과목입니다2 C++ 구현해보기

kimc 2021. 9. 25. 23:52

```

백준 17362번 수학은 체육과목입니다2 C++ 구현해보기

```

 

이번 글을 통해 배워갈 내용

  1.  백준 17362번 풀이

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

 

17362번: 수학은 체육과목 입니다 2

첫 번째 줄에 19번 문제 세 번째 줄에 등장하는 수 '1000'을 자연수 n으로 바꾸었을 때 그에 해당하는 답의 번호를 출력한다. 즉, 1 이상 5 이하의 자연수 중 하나를 출력해야 한다.

www.acmicpc.net

 

 

 

백준 17362번 수학은 체육과목입니다 2는

난이도 브론즈 문제로서

 

첫번째 손까락에서 시작해서

각 양옆에 손까락으로 순서대로 옮길때마다 1씩 더할때

N 번째 해당하는 손까락을 구하면 되는 문제입니다.

 

손까락 그림 및 자세한 설명은 위에 링크의 문제를 보시면 이해가 더 잘 되실 겁니다.


30분 정도 위에 링크를 방문하셔서 풀어보시고

안풀리시는 경우에만 아래 해답을 봐주시면 감사하겠습니다.


매우 간단하게 설명하자면

 

1 부터 17까지 각 케이스 별로 수를 쓰시다보면

 

패턴이 보이실 겁니다.

 

8번마다 반복하기 때문에

 

n을 modular 8 해주고

 

나머지를 활용해서

 

답을 출력하면 되는 프로그램이였습니다.

 

 

전체 코드는 아래와 같습니다.

 

#include <iostream>
#include <string>
#include <sstream>
#include <vector>
#include <array>
#include <stack>
#include <queue>
#include <map>
#include <algorithm>
#include <numeric>
#include <cmath>
#include <regex>


int main()
{
	// 입력 최적화
	std::cin.tie(NULL);
	std::ios::sync_with_stdio(false);

	int64_t num;
	std::cin >> num;

	int32_t retVal = 0;

	switch (num % 8)
	{
	case 1:
	{
		retVal = 1;
		break;
	}
	case 0:
	case 2:
	{
		retVal = 2;
		break;
	}
	case 7:
	case 3:
	{
		retVal = 3;
		break;
	}
	case 6:
	case 4:
	{
		retVal = 4;
		break;
	}
	case 5:
	{
		retVal = 5;
		break;
	}
	default:
		break;
	}



	std::cout << retVal;
}

 

 

 

 

읽어주셔서 감사합니다

 

무엇인가 얻어가셨기를 바라며

 

오늘도 즐거운 코딩하시길 바랍니다 ~ :)

 

참조 및 인용

C++ Primer

Introduction to Algorithms


https://codemasterkimc.tistory.com/35

 

C++ 이론을 배울수 있는 곳 정리

개요  C++을 배우는 책, 강의, 블로그, 링크 등을 공유합니다. (링크 및 간략한 설명을 하였으나 만약 원작자가 링크를 거는것을 원치 않을 경우 연락주시기 바랍니다.) 서적 https://www.amazon.com/Prime

codemasterkimc.tistory.com

 

https://codemasterkimc.tistory.com/50

 

300년차 개발자의 좋은 코드 5계명 (Clean Code)

이번 글을 통해 배워갈 내용  좋은 코드(Clean Code)를 작성하기 위해 개발자로서 생각해볼 5가지 요소를 알아보겠습니다. 개요 좋은 코드란 무엇일까요? 저는 자원이 한정적인 컴퓨터 세상에서 좋

codemasterkimc.tistory.com

 


 

728x90