하이루.
브론즈 3 문제이다.


위 문제는 조금만 생각하면 쉬운 문제이다.
일단 나는 위 문제의 규칙을 찾아 보았는데
먼저 4행으로 4의 배수가 적혀 있으니 리스트로 저장해야 하나 했다.
근데 굳이 그럴 필요가 없다고 느꼈고 입력 값 11, 33 그리고 출력 값 8에 대한 규칙을 찾았다.
문제 풀이
- 11을 4로 나눈 값과 33을 4로 나눈 값의 차를 구한다.
11 // 4 = 2,33 // 4 = 8|2-8| = 6- 11을 4로 나눈 값의 나머지를 구하고 33을 4로 나눈 값의 나머지와 차를 구한다.
11 % 4 = 3,33 % 4 = 1|3-1| = 2- 그리고 위 값들을 더해준다.
- 참고로 차이를 구하는 것이기에 abs함수를 사용해서 절대값을 구해줘야 한다.
이렇게 풀어서 아래와 같은 코드가 나왔는데
오답이 나왔다.
num1, num2 = map(int, input().split())
one = abs((num1 // 4) - (num2 // 4))
two = abs((num1 % 4) - (num2 % 4))
print(one + two)
그래서 다른 값을 실행해 보았는데 이상한 값이 나왔다.
왜 그런가 다른 코드를 참고해보니,
입력 받은 값에 1을 빼주더라고?
그래서 아래와 같은 코드가 정답이다.
num1, num2 = map(int, input().split())
num1 -= 1
num2 -= 1
one = abs((num1 // 4) - (num2 // 4))
two = abs((num1 % 4) - (num2 % 4))
print(one + two)
그리고 오답이 나와서 다른 사람들의 코드를 참고 했을 때,
나와 같은 방식으로 코드를 작성했던 사람들도 있었던 반면에
꽤나 복잡하고 긴 코드로 작성을 했던 사람들도 있었다.
지금까진 거의 계속 내가 다른 사람들의 코드보다 길거나 복잡했었는데 이번에는 내 코드가 간결하고 좋게 짠 거라 기분이가 좋았당..ㅎㅎ
조금만 생각하면 풀 수 있는 문제니까
아무리 바빠도 제발 1분이라도 더 고민해보도록 노력해보자!
아자 아자 화이팅 😘❣️