티스토리 뷰
이번 포스팅은 백준 알고리즘 사이트의 2439번 별찍기-2 문제를 Python 언어로 코딩해보도록 하겠습니다. 아래 url로 접속하시면 문제를 볼 수 있습니다.
https://www.acmicpc.net/problem/2439
지난 백준 알고리즘 포스팅과 같은 단계로 for문 사용해보기 단계의 문제입니다.
이 문제의 경우 사용자로부터 N을 입력 받고, 입력 받은 만큼의 행이 생기고, 공백을 포함하여 별로 삼각형을 만드는 문제입니다.
문제에서 생각해볼 것은 먼저 어떻게 나눠서 코딩을 해 볼 것인가, 어떻게 나누어 몇개의 for문을 어떻게 사용할 것인가를 생각해보시면 도움이 될 것 같습니다.
1 2 3 4 | inp = int(input()) for i in range(1,(inp+1)): print(" " * (inp - i), end="") print("*" * i) | cs |
먼저 변수 inp을 지정해 int(input())을 이용하여 사용자로부터 정수형의 입력을 받습니다.
for i in range(i, (inp+1))을 이용해 for문의 조건을 작성해줍니다.
(Python의 for문 이용시 range는 첫째 인자로 초기값, 둘째 인자로 종료값, 여기선 없지만 마지막 인자로 증가값을 적용합니다. 또한 두번째 인자인 종료값의 경우 해당 값을 포함하지 않기에 필요한 종료값보다 하나 더 크게/작게 조건을 작성해야 합니다.)
for문 내에는 두개의 print문이 있는데 첫 print문은 공백을 출력하고 두번째는 *을 출력합니다.
자세히 보면 공백을 출력하는 print의 경우 " "에 (input-i) 만큼 곱해서 (input-i)의 크기만큼 공백을 출력해주고, print 끝에 end=""를 더해 print의 기본 설정인 개행을 막아줍니다.
(Python은 end 뒤에 따로 설정을 해주지 않으면 자동으로 개행을 해줍니다.)
다음 print문은 *에 i만큼 곱해서 *을 i번만큼 출력해줍니다. *을 출력하고 나면 개행이 필요하기에 따로 end 설정을 해주지 않았습니다.
파이썬의 경우 문자열을 더하고 곱할 수 있다는 강점이 있고, 직관성이 있습니다. 그렇기에 문자열을 출력하는 print를 반복하는 것이 아니라 단순 문자열에 수를 곱하여 문제열을 반복 출력할 수 있습니다.
또한 print는 자동으로 개행이 되기에 개행을 위한 for문이 따로 필요하지 않습니다.
별을 출력하는 예제를 파이썬으로 푸는데 다른언어처럼 풀 수도 있습니다. 혹시 궁금하신 분들은 아래 포스팅을 참고해주세요.
하지만 파이썬을 사용했을 때 쓸 수 있는 강점을 살려서 코딩하는 것이 좋기에 그를 연습하는 것이 중요하다고 생각합니다.
다음 포스팅에서는 다음 단계의 코드를 보도록 하겠습니다,
다음 포스팅에서 봐요 :))
'BaekJoon > Python' 카테고리의 다른 글
[BaekJoon/Python3] 백준 2441번 별찍기-4 (0) | 2018.10.29 |
---|---|
[BaekJoon/Python3] 백준 2440번 별찍기-3 (0) | 2018.10.25 |
[BaekJoon/Python3] 백준 2438번 별찍기-1 (0) | 2018.10.24 |
[BaekJoon/Python3] 백준 2739번 구구단 (0) | 2018.10.22 |
[BaekJoon/Python3] 백준 2742번 기찍 N (1) | 2018.09.12 |
- Total
- Today
- Yesterday
- 구글 애드센스 승인
- 구글 애드센스 설치
- Git Bash
- webhacking.kr
- c
- Ubuntu 18.04
- GIT
- webhacking
- Oldzombie
- Google Adsense
- python
- python 코딩
- Python 언어
- 백준
- 웹해킹
- 구글 애드센스 후기
- 백준 코딩
- 우분투
- 백준 알고리즘
- 승인 후기
- C 코딩
- tistory blog
- 구글 애드센스
- C 언어
- ubuntu 18.04 LTS
- 우분투 18.04
- github
- ubuntu
- 구글
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |