본문 바로가기
IT관련 공부/백준(BaekJoon)

10926번, 18108번, 3003번

by 행복한 위드 2022. 10. 12.

10926번

입력받은 값에 ??!을 더하는 간단한 문제이다.

파이썬의 print문에 ??! 을 더하려면

A= input()
print(A+"??!")

이런식으로 간단하게 해결할 수 있다.

입력받은값과 더하고 싶은 문자에 + 를 써주면 같이 출력이 된다.

 

18108번

문제가 쓸떼없이 길다. 단지 년도의 차이뿐이므로 2541 - 1998 = 543년이 나온다. 불기와 서기연도의 차이는 543년이므로 

입력받은 값에서 543을 빼주면 될 것이다.

A = input()
B = int(A) - 543
print(B)

여기서 A = A -543을 해도 되지만 최근 Python의 Pandas를 배우는 중인데 웬만하면 원본 데이터를 건들지 않는게 좋다고 해서 변수 하나를 만들어 넣는 것으로 습관을 만들기로 했다.

그래서 변수를 만들어 문제를 해결하였다.

 

3003번 

조금 복잡하다고 느껴서 방향성을 완전히 잘못 잡고 풀이하다가 쉽게 생각해보자 해서 풀었던 문제이다.

처음 내가 생각한것은

chess_input = list(map(int, input().split()))
chess = [1, 1, 2, 2, 2, 8]
int_chess_list = list(map(int,chess))
num = 0
for i in int_chess_list:
    if i == chess_input[num]:
        chess_input[num] = chess_input[num] - chess_input[num]
        num = num + 1 
    elif i > chess_input[num]:
        chess_input[num] = i - chess_input[num]
        num = num + 1
    elif i < chess_input[num]:
        chess_input[num] = i - chess_input[num]
        num = num + 1

chess_input으로 데이터를 받고 chees 배열을 이용해서 값을 비교해서 출력을 하는 것이었는데 보면 elif 문 두개의 값이 똑같은 것을 볼 수 있다.

잘못되었다는 소리다. i의값이 크거가 같거나 chess_input[num] = i - chess_input[num] 이문은 변하지 않는다 그래서 elif 문대신 else문을 사용하여도 같은 결과가 나온 것을 확인 할 수 있었다.

보면 되게 복잡하게 처리하였는데 내가 제출할 당시에는 결과가 '맞았다' 라고 채점이 되서 넘겼었는데  글을 쓸려고 다시 제출해보니 계속 틀렸다고 하는 것이였다. 

그래서 잘못되었구나 해서 다시 코드를 짜봤다 

chess_input = list(map(int, input().split()))
chess = [1, 1, 2, 2, 2, 8]
num = 0
for i in chess:
    print(chess[num] - chess_input[num], end=' ')
    num = num+1

위의 것을 간추려서 입력받은 값에서 chees 배열을 빼는 것으로 바꾸었다. 

간단한 문제를 복잡하게 돌아가려고 했던..;ㅅ;

코드를 해설하자면 for문을 써서 chess의 배열의 크기를 i로 받아 [1, 1, 2, 2, 2, 8]의 갯수만큼 반복문을 돌린다.

print문에서는 chess의 num 번째와 입력했던 chess_input의 num번째를 빼고 끝에 end는 스페이스 만큼 띄어줘 출력을 한다.

num = num+1 다음 배열을 가르키려면 +1을 해줘야하니 반복문에도 넣어준다.

end = '  '를 쓰지않고 +"  " 이런식으로 출력해도 아마 같은 값이 나올 것이다.

나오지 않았는데 이유는 +를 쓸 경우는 chess[num] - chess_input[num]의 값과 " "값을 더하기 때문이 아닐까 싶다.

그래서 조금 찾아봤는데 함수 문법자체가 그러하더라..

내가 생각한 것이 비효율적이긴 하지만 다른 방법도 생각해보는 좋은 시간이 된것 같다.

 

 

부록)

 

보면 둘 다 맞았다고 하고있다. 

 

피드백은 언제나 환영해요!

'IT관련 공부 > 백준(BaekJoon)' 카테고리의 다른 글

10171번, 10172번, 25083번  (0) 2022.10.12
10430번, 2588번  (0) 2022.10.12
1000번, 1001번, 10998번, 1008번, 10869번  (0) 2022.10.12
백준 10718번 문제  (0) 2022.09.06
백준 2557번 문제  (0) 2022.09.06