본문 바로가기

코딩 테스트89

[백준/Python] 10988번 팰린드롬인지 확인하기 문제 ■ 10988번 팰린드롬인지 확인하기 ■ 코드 풀이 문자열은 list처럼 slicing이 가능하다는 점을 알고 있다면, 쉽게 풀 수 있는 문제입니다. 두 가지 방법으로 풀어보겠습니다. 먼저 아래의 코드는 word를 입력받고, word의 reverse를 word_reverse 변수에 할당합니다. 그리고 for loop를 순서대로 돌면서 word와 word_reverse를 element-wise 별로 비교합니다. 각 위치 별로 단어가 같다면, True가 되고 이는 곧 숫자 1과 같으므로 문자가 모두 같다면 sum은 문자열의 길이와 동일해집니다. 이때, 단어의 역순을 구하는 방법에도 두 가지가 있습니다. 첫 번째는 word[-1::-1], 마지막 문자부터 첫 번째 문자까지 역순으로 배열하는 방법이고 두 번째는.. 2023. 3. 26.
[백준/Python] 10812번 바구니 순서 바꾸기 ■ 10812번 바구니 순서 바꾸기 ■ 코드 풀이 두 가지 방법으로 풀어보겠습니다. 먼저 아래는 제가 처음에 작성한 코드입니다. 첫 번째 바구니일 때와 아닐 때를 if문을 활용하여 구분했습니다. 그런데 코드를 어찌 저찌 다 작성하고 제출했더니, 너무 지저분하고 비효율적이라는 생각이 들었습니다. 분명 다른 고수들의 코드가 있겠다 싶었습니다. 그래서 찾아보니 아래와 같은 코드가 있더군요. import sys N,M = map(int, sys.stdin.readline().split()) basket = [i for i in range(1,N+1)] for n in range(M): i,j,k = map(int, sys.stdin.readline().split()) if (i-1) == 0: temp = ba.. 2023. 3. 25.
[백준/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.