본문 바로가기
Programming/Python

[BAEKJOON] 백준 Python 3단계 반복문 2438번/ 2439번 / 10871번 / 별찍기 -1 / 별찍기 -2 / x보다 작은 수

by EunjiBest 2022. 4. 12.

[BAEKJOON] 백준 Python 3단계 반복문 2438번/ 2439번 / 10871번 / 별찍기 -1 / 별찍기 -2 / x보다 작은  수

 

 

 

 

 

 

2438번(별찍기 -1)

 

첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제

입력 : 첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.
출력 : 출력
*
**
***
****
*****

 

별찍기 문제는 어떤 언어이든, 모든 코딩 책에 다 들어가있는 예제인 것같다.

 

1. N을 input으로 받아준다.

2. N번 돌아가는 for문을 만든다

3. N번만큼 x가 1씩 더해진다.

4. *에 x를 곱한 수를 출력한다.

 

N = int(input())
x = 0

for i in range(N):
  x += 1

  print('*'*x)

 

간단하게 완료!

 

 

 

 

2439번 (별 찍기 -2)

 

첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제
하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오.

입력 : 첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.
출력 : 첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다.
    *
   **
  ***
 ****
*****

 

위 문제와 좌우 대칭으로 별을 찍는 문제이다.

저 공백에 대한 식을 세워야한다.

공백의 수 = 총 줄 수 - 현재 줄의 번호

가 된다.

 

N = int(input())
x = 0

for i in range(N):
  x += 1

  print(' '* (N - x),'*'*x)

 

일단 이렇게 코딩을 해보았는데

출력 형식이 잘못되어서 오답처리가 되었다.

 

이것저것 시도해보다가

최종적으로

 

답 :

N = int(input())
x = 0

for i in range(N):
  x += 1

  print(' '* (N - x) + '*'*x)

 

출력값의

공백과 * 사이를 ,(쉼표)가 아닌

+ 로 바꿔주었더니 정답처리가 되었다.

 

 

 

10871번(x보다 작은 수)

 

정수 N개로 이루어진 수열 A와 정수 X가 주어진다. 이때, A에서 X보다 작은 수를 모두 출력하는 프로그램을 작성하시오.

입력 : 첫째 줄에 N과 X가 주어진다. (1 ≤ N, X ≤ 10,000)
둘째 줄에 수열 A를 이루는 정수 N개가 주어진다. 주어지는 정수는 모두 1보다 크거나 같고, 10,000보다 작거나 같은 정수이다.

출력 : X보다 작은 수를 입력받은 순서대로 공백으로 구분해 출력한다. X보다 작은 수는 적어도 하나 존재한다.

 

수열... 

언제 들어보고 안들어봤지..ㅋㅋㅋ

뼛속 문과인 나는.. 네이버에게 물어보았다.

'수의 나열'의 줄임말 같다.

일단.. 무작정 써보는 것으로 하자.

 

1. N, X 인풋

2. 사용자가 N만큼의 숫자(1보다 크거나 같고, 10000보다 작거나 같은 정수)를 입력한다. => 이게 수열 A

3. N번만큼 도는 for문을 만든다.

4. 만약 수열 A가 X보다 작다면

5. 해당 수를 출력한다.

 

N,X = map(int, input().split())
A = list(map(int, input().split()))

for i in range(N):
  if A[i] < X:
    print(A[i], end = "")

 

A는 N만큼의 숫자가 입력되야하기 때문에 list로 받아주었다.

N만큼 도는 for문을 출력하면

기본적으로 줄단위로 출력되기 때문에,

end = ""를 넣어주어 가로로 출력이 되게 해주었다.

 

 

간만에 일찍일어나서

잠 깰 겸 모닝 포스팅을 해보았다!

오늘도 무사히 백준 완료ㅎ

 

 

 

 

 

 

반응형

댓글