말랑말랑제리스타일

파이썬으로 백준 for문 문제 풀기 2 본문

프로그래밍/백준 알고리즘

파이썬으로 백준 for문 문제 풀기 2

제리제리 2022. 2. 11. 10:46

백준 알고리즘 for문 문제 2742,11021,11022,2438,2439,10871 답안 예시

백준 알고리즘 for문 문제 2742,11021,11022,2438,2439,10871 정답 코드 및 설명입니다.

혹시나 여기 없는 문제의 경우 for문 문제 1번 글에서 언급했을 수 있으니 참고 바랍니다.

반응형
 

파이썬으로 백준 for문 문제 풀기 1

백준 알고리즘 for문 문제 2739,10950,8393,15552,2741 답안 예시 백준 알고리즘 for문 문제에 해당하는 2739,10950,8393,15552,2741 문제 파이썬으로 풀어 본 답안 예시입니다. 꼭 똑같이 하라는 법도 없고 더 좋.

jerry-style.tistory.com

 

백준 2742번 역순 출력

파이썬에서 백준 2742번 같은 류의 코딩은 상당히 간편합니다. range 기능을 이용해 N부터 i가 0보다 클 때까지 감소시켜주면 되죠.

N = int(input())
for i in range(N,0,-1):
    print(i)

range 기능에서 -1을 생략하면 증가 연산이 되고 이런 경우 오답 처리가 될 수 있으니 참고 바랍니다.

그 외에 특별한 점은 없고 이해가 잘 안 된다면 앞에 글의 2741번 해설을 봐주시면 될 것 같습니다.

백준 11021 합계와 인덱스 출력

백준 11021번 문제의 계산 로직은 여러 개의 두 수를 입력받아서 합산한 값을 출력해주는게 다인 문제입니다.

N = int(input())
i_Arr = []
while N:
    i_Arr.append(list(map(int,input().split())))
    N -= 1
for index,value in enumerate(i_Arr):
    sum = 0
    for j in value:
        sum += j
    print("Case #{}: {}".format(index + 1,sum))

다만 파이썬에서 다소 난해한 점은 입력과 출력 포맷과 인덱스입니다.

파이썬 리스트를 enumerate로 변환해서 값과 인덱스를 동시에 가져오는 방법, input 값을 나누어서 리스트 형태로 저장하는 방법이 관건인 문제죠.

이 방법에 관해서 아래 링크로 걸어놓은 파이썬 여러개 입력받고 출력하기 글에서 자세히 설명해두었습니다.

반응형
 

파이썬에서 여러개 입력받아서 여러개 출력하기

파이썬에서 여러개 입출력이 필요한 상황 백준 알고리즘을 포함해 알고리즘 코딩테스트에서 여러개의 변수를 입력받아 여러개의 변수로 출력하는 것은 가장 기본적인 요소입니다. 코딩테스트

jerry-style.tistory.com

이 글 마지막에는 백준 11022번 답까지 있으니 내용을 본 뒤 마지막에 있는 백준 11022번 문제까지 따라 풀어보시면 될 것 같습니다.

 

백준 2438번 별 찍기

백준 2438번 문제는 for문 배울 때 항상 나오는 별 찍기 문제입니다.

그중 백준 2438번은 별을 순차적으로 1개, 2개...로 각각 한 줄에 출력하는 문제죠.

N = int(input())
str = ""
for i in range(N):
    str += "*"
    print(str)

빈 문자열인 str 변수를 생성하고 *을 하나 붙여 출력하고 하나 더 붙여 출력하는 형식으로 총 N번 반복하도록 하면 백준 2438번에서 원하는 답을 얻을 수 있습니다.

 

백준 2439번 역순 별 찍기

백준 2439번 역순 별 찍기 문제는 2438번보다 어려울 것 같지만 파이썬에서는 상당히 간단한 문제입니다.

N = int(input())
str = ""
for i in range(N):
    str += "*"
    print(str.rjust(N))

출력 문자열의 길이를 정해주고 우측으로 밀어주는 rjust 함수만 사용하면 백준 2438번 문제 답에서 마지막 한 줄만 바꾸면서 백준 2439번 역순 별 찍기 문제도 해결이 가능합니다.

 

백준 10871번 문자열 파싱과 한 줄에 출력

백준 10871번 문제의 관건은 입력 문자열을 파싱 해서 간단한 연산을 한 뒤 한 줄에 출력하는 문제입니다.

반응형
N,X = map(int,input().split())
i_Arr = list(map(int,input().split()))
for i in i_Arr:
    if i < X:
        print(i,end = ' ')

먼저 백준 10871의 문자열 파싱은 변수 두 개에 map을 이용해서 split 된 문자열을 int로 저장하거나 리스트형으로 치환해 하나의 리스트로 저장하는 방법을 사용할 수 있습니다.

한 줄에 출력하는 방법으로는 파이썬에서 기본적으로 print(문자열) 형태를 사용하면 end에 default 값으로 \n 즉, 줄바꿈 문자로 되어있기 때문에 end 값을 공백으로 바꿔주면서 print 함수로 한줄에 출력하는 게 가능합니다.

 

여기까지 백준 알고리즘 문제 중 for 문 문제에 대한 파이썬 코드 해석을 마칩니다.

반응형
Comments