본문 바로가기

백준84

[백준/Python] 2444번 별 찍기-7 문제 ■ 2444번 별 찍기-7 문제 ■ 코드 풀이 구현 방법은 여러 가지가 있지만, 파이썬으로 푸는 경우라면 range() 함수에서 역순으로 출력하는 방법을 아는지가 이 문제의 핵심인 것 같습니다. 이것만 알아도 아래와 같이 코드가 굉장히 단순해지니까요. range(시작값, 끝값,-1)을 하면 시작값부터 끝값까지 역순으로 출력하라는 의미입니다. 물론 역순으로 출력할 경우에는 시작값이 끝값보다 커야 합니다. N = int(input()) for i in range(1,N): print(' '*(N-i)+'*'*(2*i-1)) for i in range(N,0,-1): print(' '*(N-i)+'*'*(2*i-1)) 2023. 3. 24.
[백준/Python] 11718번 그대로 출력하기 문제 ㅁ ㅁ 코드 풀이 두 가지 방법으로 풀어보겠습니다. 먼저 첫 번째 방법은 try, except 구문을 활용한 방법입니다. 제가 문제를 처음 봤을 때 '입력을 몇 번 받는지 제시하지 않았으니, break 조건이 핵심이겠구나' 라는 생각이 들었고, 이를 코드로 구현하기에 try, except가 딱이다 라는 생각을 했습니다. 아래의 코드는 "몇 번인지 모르겠지만 일단 계속 입력 받은 것을 출력하고(try) 입력이 종료되면 반복문을 break 해라" 라는 뜻입니다. 코드 길이는 90B이고 소요 시간은 72ms 입니다. while True: try: print(input()) except EOFError: break 두 번째 방법은 sys.stdin의 readlines()를 활용한 방법입니다. readlines는.. 2023. 3. 24.
[백준/Python] 5622번 다이얼 문제 ■ 5622번 다이얼 문제 ■ 코드 풀이 다이얼 문제를 3가지 풀이법으로 풀어보겠습니다. 먼저, if문을 활용한 직관적인 풀이법입니다. 문자열을 S에 입력 받고, S를 알파벳 하나씩 for loop를 통해 받으면서 해당 단어가 몇 초가 걸리는지 합산하는 코드입니다. 소요 시간은 40ms이고 코드 길이는 433B입니다. 아래 코드를 list를 활용하여 바꿔보겠습니다. S = input() time = 0 for s in S: if s in "ABC": time += 3 elif s in "DEF": time += 4 elif s in "GHI": time += 5 elif s in "JKL": time += 6 elif s in "MNO": time += 7 elif s in "PQRS": time += .. 2023. 3. 23.