본문 바로가기
Coding Test (코딩 테스트)

코딩테스트 8일차(2025.01.22) - 8393번(합)

by BioLearner 2025. 1. 22.
반응형

내 풀이

n이 주어졌을 때 1부터 n까지의 합을 구하는 프로그램 작성

수학수식 사용 n(n+1)/2

T = int(input())

# 수학수식 사용
# n(n+1)/2
result = T*(T+1)/2
    
print(result)

결과: 틀림

정답

n = int(input())
print(n * (n + 1) // 2)
n = int(input())
print(sum(range(1, n + 1)))

틀린 이유

식은 맞았으나 연산자에 대한 지식이 부족했다.

 

/2와 //2와는 많은 점에서 틀리다.

 

현실적으로 보았을 때는 나누기 2가 무엇이 틀렸는가 싶지만 컴퓨터 상에는 float형 즉, 실수형의 데이터는 5를 나누면 2.5가 아니라 2.50000002이렇게 값이 나타나기 때문에 이점을 꼭 인지할 필요가 있다. 그렇기 떄문에 항상 시간과 관련된 것은 1초는 1000, 2초도 2000이런 방식으로 나타낸다. 

 

이러한 것은 기초중에 기초이기에 꼭 기억해둘 필요가 있다. 

 

고찰

연산자는 어떻게 있을까?

 

1. 산술 연산자

a + b   # 덧셈
a - b   # 뺄셈
a * b   # 곱셈
a / b   # 나눗셈 (결과가 float)
a // b  # 몫 (정수 나눗셈)
a % b   # 나머지
a ** b  # 거듭제곱 (a의 b승)

 

2. 비교 연산자

a == b  # 같다
a != b  # 다르다
a < b   # 작다
a <= b  # 작거나 같다
a > b   # 크다
a >= b  # 크거나 같다

 

3. 할당 연산자

a = 5    # 기본 할당
a += 2   # a = a + 2와 같음
a -= 2   # a = a - 2와 같음
a *= 2   # a = a * 2와 같음
a /= 2   # a = a / 2와 같음
a //= 2  # a = a // 2와 같음
a %= 2   # a = a % 2와 같음
a **= 2  # a = a ** 2와 같음

 

4. 논리 연산자

a and b  # 둘 다 참일 때만 참
a or b   # 둘 중 하나만 참이어도 참
not a    # a가 참이면 거짓, 거짓이면 참

 

연산자는 이러한 것이 있기 때문에 항상 시행착오없이 생각하도록 하자.

반응형