별 찍기 8

백준 10992 별 찍기 - 17 파이썬 풀이

https://www.acmicpc.net/problem/10992 10992번: 별 찍기 - 17 첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다. www.acmicpc.net 코드 n = int(input()) for i in range(n) : print(" " * (n - 1 - i), end="") if i == n - 1 : print("*" * (2 * n - 1)) elif 0 < i < n - 1: print("*" + " " * (2 * i - 1) + "*") else: # i == 0인 경우 print("*") 풀고 나서 느낀점은 나는 별 찍기 문제를 풀 때, 따로 깊게 로직을 생각하지 않는다는 것이었다. 반복해서 출력되니 반복문을 사용하고, 공백이 별 밖에, 별 사이에 있고, 별..

알고리즘 2024.01.18

백준 10991 별 찍기 - 16 파이썬 풀이

https://www.acmicpc.net/problem/10991 10991번: 별 찍기 - 16 예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요. www.acmicpc.net 코드 n = int(input()) for i in range(n) : print(" " * (n - i - 1), end="") print(("*" + " ") * (i + 1)) 접근법 별을, * 하나로 보지 않고 "* " ( * + " ") 공백으로 보면 수월할 거 같다는 생각을 했다. 첫 번째 print문은 공백 출력용도로 사용됐다. 입력값이 1일때 공백이 0, 입력값이 2일때 공백이 1로 시작해야해서 해주었고 -i는 점차 공백이 줄어들어야 하기 때문에 넣어줬다. 두 번째 print문은 앞서 말한 별과 공백 ("*" +..

알고리즘 2024.01.18

백준 2522 별 찍기 - 12 파이썬 풀이

https://www.acmicpc.net/problem/2522 2522번: 별 찍기 - 12 첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다. www.acmicpc.net 코드 n = int(input()) for i in range(n) : print(" " * (n - 1 - i), end="") print("*" * (i + 1)) for i in range(1, n) : print(" " * i, end="") print("*" * (n - i)) 위, 아래로 반복문을 나누고 공백 출력, 별 출력으로 나누어서 출력하면 되겠다는 생각을 했다.

알고리즘 2024.01.18

백준 2445 별 찍기 - 8 파이썬 풀이

https://www.acmicpc.net/problem/2445 2445번: 별 찍기 - 8 첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다. www.acmicpc.net 코드 n = int(input()) for i in range(1, n + 1) : print("*" * i, end="") print(" " * (2 *(n - i + 1) - 2), end="") print("*" * i) for i in range(1, n) : print("*" * (n - i), end="") print(" " * (2 * (i + 1) - 2), end="") print("*" * (n - i)) 위, 아래로 반 뚝 짤라서 출력시키고자 했다. 처음 프로그래밍 배울때는 저런 모양은 엄두도 못냈었던 거..

알고리즘 2024.01.18

백준 2442 별 찍기 - 5 파이썬 풀이

https://www.acmicpc.net/problem/2442 2442번: 별 찍기 - 5 첫째 줄에는 별 1개, 둘째 줄에는 별 3개, ..., N번째 줄에는 별 2×N-1개를 찍는 문제 별은 가운데를 기준으로 대칭이어야 한다. www.acmicpc.net 코드 1 n = int(input()) for i in range(1, n + 1) : print(" " * (n - i), end="") print("*" * (2*i - 1)) 코드 2 n = int(input()) for i in range(n) : print(" " * (n - (i + 1)), end="") print("*" * (2*(i + 1) - 1)) 코드 3 n = int(input()) for i in range(1, n + ..

알고리즘 2024.01.18

백준 2441 별 찍기 - 4 파이썬 풀이

https://www.acmicpc.net/problem/2441 2441번: 별 찍기 - 4 첫째 줄에는 별 N개, 둘째 줄에는 별 N-1개, ..., N번째 줄에는 별 1개를 찍는 문제 하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오. www.acmicpc.net 코드 1 n = int(input()) for i in range(n) : print(" " * i, end="") print("*" * (n - i)) 따로 접근법 같은 건 없었다. 처음 프로그래밍 배울 때, 자바스크립트로 별 찍기를 외우듯이 다양한 모양을 풀었던 기억이 있다. 아마 그 여파때문인지 코드의 틀을 짜놓고 출력해가면서 모양을 맞췄다. 코드 2 n = int(input()) for i in range(n) : pr..

알고리즘 2024.01.18

백준 2440번 별 찍기 - 3 파이썬 풀이

https://www.acmicpc.net/problem/2440 2440번: 별 찍기 - 3 첫째 줄에는 별 N개, 둘째 줄에는 별 N-1개, ..., N번째 줄에는 별 1개를 찍는 문제 www.acmicpc.net 코드 풀이1 n = int(input()) for i in range(n) : # 입력받은 수 만큼 아래로 내려갈 반복문 for j in range(n - i) : # 문제에 맞게 별을 가로방향으로 찍을 반복문 print("*", end="") print() 코드 풀이2 n = int(input()) for i in range(n) : print("*" * (n - i)) 풀고 나서 짧게도 만들 수 있구나.. 다시 생각했고 심지어 처음 짰을 때는 이중 반복문을 쓴 것에 반해 반복문을 한번만..

알고리즘 2024.01.12