분류 전체보기 26

백준 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

백준 1924 2007년 파이썬 풀이

https://www.acmicpc.net/problem/1924 1924번: 2007년 첫째 줄에 빈 칸을 사이에 두고 x(1 ≤ x ≤ 12)와 y(1 ≤ y ≤ 31)이 주어진다. 참고로 2007년에는 1, 3, 5, 7, 8, 10, 12월은 31일까지, 4, 6, 9, 11월은 30일까지, 2월은 28일까지 있다. www.acmicpc.net 접근법 달력은 0~6 인덱스로 되어 있는 2차원 배열이라고 볼 수 있다. 단지 매월 30, 31의 주기로 1로 초기화 되는 것이다. 그럼 1월 1일부터 시작해서 매월 1로 초기화 되지 않으면 간단하게 7로 나눠서 요일을 구할 수 있을 것이라 생각했다. 코드 day_of_the_week = {0 : "MON", 1 : "TUE", 2 : "WED", 3 : ..

알고리즘 2024.01.18

백준 11721 열 개씩 끊어 출력하기 파이썬 풀이

https://www.acmicpc.net/problem/11721 11721번: 열 개씩 끊어 출력하기 첫째 줄에 단어가 주어진다. 단어는 알파벳 소문자와 대문자로만 이루어져 있으며, 길이는 100을 넘지 않는다. 길이가 0인 단어는 주어지지 않는다. www.acmicpc.net 접근법 입력받은 문자를 알파벳 단위로 리스트에 할당한다. 인덱스 0부터 출력하다 10번째 되는 곳에서 "\n"출력 코드1 sentence = [x for x in input()] for i in range(len(sentence)) : print(sentence[i], end="") if (i + 1) % 10 == 0: # i가 0부터 시작하기 때문에 위해 +1을 해주었다 print() 파이썬은 print()에 기본적으로 줄..

알고리즘 2024.01.17

백준 10953 A+B - 6 파이썬 풀이

https://www.acmicpc.net/problem/10953 10953번: A+B - 6 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 코드 T = int(input()) for _ in range(T) : A, B = map(int,input().split(",")) print(A + B) input()으로 입력받아서 쉽표(,)로 구분되어 있다고 해서 쉼표로 구분해줬다. Input() 함수 input() 함수는 파이썬 내장 함수이다. 주로 유저로부터 값을 요구하고자 할때 사용되고 엔터키에 반응하여 입력된 값을 문자열로 저장하게 된다. 특징이라면 input()은 어떤 값이 주어지더라도 문자열로 저장한다는 것이다. 그래서 만약 입력받은 값을..

알고리즘 2024.01.17

백준 1316 그룹 단어 체커 파이썬 풀이

https://www.acmicpc.net/problem/1316 1316번: 그룹 단어 체커 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때 www.acmicpc.net 접근법 알파벳 배열을 만들어서 단어를 훑는 방법을 생각했다. 단어를 입력받아서 배열로 할당을 한다. 같은 단어인지를 flag(깃발)을 통해 같은 그룹이면 1, 아니면 0으로 한다. 마지막에 깃발이 1이면 count를 증가시킨다. 코드 n = int(input()) count = 0 for _ in range(n) : alphabet = [0] * 27 word = ..

알고리즘 2024.01.16