for5 [백준 2438번] 파이썬(python) for문 I 별 찍기 - 1 문제 첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제 입력 첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다. 출력 첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다. 예제 입력 1 5 예제 출력 1 * ** *** **** ***** n = int(input()) x = '' for i in range(1, n + 1): print('*' * i + ' '*(n - i)) 알았던 내용 range에서 범위를 설정하는 것 몰랐던 내용 출력되는 수를 지우고 문자 * 로 변경하는 방법. 그리고 출력되는 문자의 위치를 변경하는 방법. 가령 별이 우측 끝에서 출력되거나 또는 좌측 끝에서부터 시작할지에 관한 것이다. 2021. 4. 15. 변수를 이용하여 sys.stdin.readline, 매끄럽게 코딩 그리고 end = ""추가 기본적으로 for문을 이용하여 출력 시 좌측 얼라인을 갖고 있으며 오름차순인 것이 일반적이다. 이 구조를 변경하려면 추가 코드의 적용이 필요하다. 기본 셋팅값을 변경하기에 앞서 무엇을 할지 구체적으로 알아보자 * ** *** ... 위와 같은 별모양을 * ** *** **** ... 아래처럼 변경하는 것이다. 이 때 필요한 기술이 두 개 정도로 압축할 수 있는데 하나는 변수의 이용과 바로 end=""라는 줄바꿈 기능이다. import sys number = int(sys.stdin.readline()) for i in range(1, number+1, 1): # 1 2 3 4 5 for j in range(number-1, i-1, -1): # 4 3 2 1 0 참 세련된 표현이지 않나..? 기가 막힌다.. 2021. 1. 26. 구구단을 end="" 기능을 사용하여 세련되게 구현하는 방법? for i in range(2, 10): for j in range(1, 10): print(i * j, end=" ") # 한줄로 2~9단까지 출력이 되는 것이고 print('') # 단 수마다 한 열씩 차지하열 보기 좋게 구현되는 것. 왜냐, j for문은 i의 한 수를 나열해주는 것이고 이어서 i가 새로운 수를 내면 그에 따라 이어서 나열해주는 것이기 떄문이다. 여기서 눈 여겨 보아야 할 부분은 바로 end =" " 이것으로 인해 끝없이 나열될 수 있었던 결과 값이 한 열에 전부 담길 수 있었고 이어서 print(' ')로 인해 희망하는 열에 결과값을 출력할 수가 있어 관상적으로 훨씬 나아졌다. 2021. 1. 26. 백준의 2742번 for문 내에 사용되는 range()함수의 또 다른 계산방식 2742번 for문을 활용한 1 ~ N까지 출력을 요하는 문제이다. for문에서 사용되는 i의 경우, 다른 설정이 없는 한 오름차순으로 정렬되어 출력되는데 내림차순으로 정렬되어 출력되게 하고싶을 땐 새로운 방식이 추가가 되어야한다. range() 방식에는 두개의 파라미터를 사용하는 방법도 있지만, 출력 내용을 다르게 하고싶을 때의 range는 조금 다르다. range(start, end, step)의 과정을 거친다. 가령, 5 4 3 2 1 을 출력하고 싶다면? n = int(input()) for i in range(n, 0, -1) print(i) 를 사용하는 것처럼 말이다. 그럼 위에 보이는 코드처럼 출력문이 5 4 3 2 1 로 떨어질 것이다. 2021. 1. 26. 이전 1 2 다음