BOJ 21

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

백준 9012 괄호 파이썬 풀이

https://www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net 접근법 열린괄호(+1), 닫힌괄호(-1)의 개수를 세서 결과적으로 0으로 끝나면 YES아니면 NO로 출력되게 하면 될거라 생각하였다. 코드 n = int(input()) for _ in range(n) : answer = 0 temp = input() for i in temp : if i == "(" : answer += 1 elif i == ")" : if answ..

알고리즘 2024.01.15

백준 25206 너의 평점은 파이썬 풀이

https://www.acmicpc.net/problem/25206 25206번: 너의 평점은 인하대학교 컴퓨터공학과를 졸업하기 위해서는, 전공평점이 3.3 이상이거나 졸업고사를 통과해야 한다. 그런데 아뿔싸, 치훈이는 깜빡하고 졸업고사를 응시하지 않았다는 사실을 깨달았다! 치 www.acmicpc.net 접근법 코드 방법을 두가지로 생각했었다. 1. 리스트 안에 리스트로 값을 입력 받아서([[과목명, 학점, 등급]]) p/ f면 제외. 2. 과목명은 쓸데없으니 제외하고 학점, 등급 리스트를 각각 만들어서 반복문으로 입력값을 받으면서 학점은 학점리스트, 등급은 등급리스트에 넣어주고 각 인덱스별로 등급과 학점을 뽑아서 p/ f면 제외해서 전공평점 계산. 이 문제를 풀거나 풀고 있는 사람이라면 내 접근법을 ..

알고리즘 2024.01.14

백준 2839 설탕 배달 파이썬 풀이

https://www.acmicpc.net/problem/2839 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net 문제를 처음 봤을 때, n값을 입력받아 5kg가방으로 최대한 채우고 나머지를 3kg 가방으로 채우고 만약 설탕이 남거나 부족하면 -1, 아니면 가방의 개수를 출력하면 될것이라 생각했다. 풀고 나서 에러가 나서 방법을 바꿨다. 코드를 지워버려서 왜 틀렸는지 확인 기억이 나질 않는게 아쉽다... 다음엔 틀린 코드도 따로 보관해놔야겠다. 코드 1 def multiples_of_3(n) : if n % 3 == 0..

알고리즘 2024.01.12

백준 2556번 별 찍기 - 14 파이썬 풀이

import time n = int(input()) for i in range(n) : print("*") time.sleep(5) https://www.acmicpc.net/problem/2556 2556번: 별 찍기 - 14 지금까지 안 나온 별 찍기가 뭐가 있는지 생각해본 후, 별을 적절히 찍으세요. www.acmicpc.net 내 생에 첫 난이도 알 수 없음 문제. 풀이를 찾기보다 무슨 문제인지 싶었을거 같다. 미리 말하자면 이 문제는 별을 정사각형 모양으로 찍어내라는 뜻이다. 즉 N이 3으로 들어오면 3 * 3 정사각형, 10이 들어오면 10 * 10. 내 웃긴 풀이를 훑어보자. 코드 1 import time n = int(input()) for i in range(n) : print("*") ..

알고리즘 2024.01.12

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