관리 메뉴

클라이언트/ 서버/ 엔지니어 " 게임 개발자"를 향한 매일의 공부일지

파이썬 프로그래밍, 어떻게 시작할까? 2 - 3과 5의 배수를 모두 더하기 및 게시판 페이징하기 본문

프로그래밍 언어/파이썬

파이썬 프로그래밍, 어떻게 시작할까? 2 - 3과 5의 배수를 모두 더하기 및 게시판 페이징하기

huenuri 2024. 10. 4. 21:19

저녁식사를 하고 조금 놀다가 8시가 넘어서 공부를 다시 시작해 본다. 파이썬 프로그래밍 오랜만에 해보는데 정말 재미있다.


 

 

 

3과 5의 배수를 모두 더하기

다음 문제를 어떻게 풀면 좋을지 생각해보자.

 

 

이 문제를 풀기 위한 중요 포인트는 2가지다.

  1. 1000 미만의 자연수를 구하는 방법
  2. 3과 5의 배수를 구하는 것

이 두 가지만 해결되면 문제는 쉽게 풀릴 것이다.


 

1. 먼저 1000 미만의 자연수는 어떻게 구할지 생각해 본다. 

 

변수에 초기값을 준 후 루프를 돌리며 1씩 증가시켜서 999까지 진행하는 방법이 가장 일반적이다.

 

또는 range 함수를 사용할 수도 있다.


 

 

 

2. 1000까지의 자연수를 차례로 구하는 방법은 알았으므로 3과 5의 배수를 구하는 방법을 생각해 보자.

 

이 방식으로 5의 배수도 추가할 수 있을 것 같다.


 

 

 

3. 이러한 내용을 바탕으로 만든 최종 풀이는 다음과 같다.

 



하지만 이 문제에는 1가지 함정이 있다. 3으로도 5로도 나누어지는 15와 같은 수가 중복으로 더해질 수 있다는 점이다. 따라서 중복이 더해지지 않도록 or 연산자를 사용해야 한다.


 

 

 

 

게시판 페이징하기

 

게시물의 총 개수와 한 페이지에 보여 줄 게시물 수를 입력으로 주었을 때 총 페이지 수를 출력하는 프로그램이 필요하다고 한다.

프로그램을 만들기 위해 입력값과 결과값이 어떻게 나와야 하는지 먼저 살펴보자. 게시물의 총 개수가 5이고 한 페이지에서 보여 줄 게시물 수가 10이면 총 페이지 수는 1이 된다. 

게시물의 총 개수(m) 페이지 당 보여 줄 게시물 수(n) 총 페이지 수
5 10 1
15 10 2
25 10 3
35 10 3

 

1. 총 게시물 개수(m)를 한 페이지에 보여 줄 게시물 수(n)로 나누고 1을 더하면 총 페이지 수를 얻을 수 있다.

총 페이지 수 = (총 게시물 개수 / 한 페이지당 보여 줄 개수) + 1

 

 

2. 이러한 공식을 적용했을 경우 총 페이지 수가 표의 값처럼 구해지는지 확인해 본다.

 

 

첫 번째에서 세 번째 케이스는 공식에 맞게 결과가 출력된다. 하지만 네 번째 케이스는 게시물 3이 되어야 하는데 4가 되었다.


 

 

 

3. 실패 케이스는 총 게시물 수와 한 페이지에 보여 줄 게시물 수를 나눈 나머지 값이 0이 될 때 발생한다는 것을 유추할 수 있다. 이 실패 케이스를 해결하려면 다음과 같이 코드를 변경해야 한다.

 

 

나누었을 때 나머지가 0인 경우는 나누기의 몫만 리턴하고 이외의 경우에는 1을 더하여 리턴하도록 변경했다. 프로그램을 실행해보면 모든 케이스가 원하던 결과를 출력하는 것을 확인할 수 있다.

 


 

 

 

학습을 마치고

어제 저녁에 이 내용을 학습하다가 마무리하지 못하고 다음날 새벽에 이어서 작성해 보았다. 이제 에디터를 사용하는 것도 많이 익숙해졌다. 

다음 포스트에서 파이썬 프로그래밍을 이어서 학습해 볼 것이다.