코딩테스트 2일차(1)(2024.10.19) - 4 문제
1. 백준 - 1001 문제 (A - B)
처음 제출한 내용
A, B = map(int, input().split())
pirnt(A - B)
정답:
A, B = map(int, input().split())
print(A - B)
왜 틀렸는가?
print를 pirnt로 씀
기존에 알았던 내용
map() : 첫 번째 인자로 전달된 함수를 두 번째 인자로 전달된 반복 가능한 객체의 각 요소에 적용하는 함수
input() : 사용자로부터 문자열 형태의 입력을 받는 함수
split() : 문자열을 공백이나 특정 구분자를 기준으로 나누어 리스트로 반환하는 함수
print(): 인자로 전달된 값을 출력하는 함수
새롭게 알게 된 내용
없음
궁금한점
없음
2. 백준 - 10998 문제 (A X B)
처음 제출한 내용
A, B = map(int, input().split())
print(A * B)
정답:
A, B = map(int, input().split())
print(A * B)
기존에 알았던 내용
앞에 내용과 동일
새롭게 알게 된 내용
없음
궁금한점
없음
3. 백준 - 1008 문제 (A / B)
처음 제출한 내용
A, B = map(int, input().split())
print(A / B)
정답:
A, B = map(int, input().split())
print(A / B)
기존에 알았던 내용
앞에 내용과 동일
새롭게 알게 된 내용
없음
궁금한점
없음
4. 백준 - 10869 문제 (사칙연산)
처음 제출한 내용
A, B = map(int, input().split())
print(A + B)
print(A - B)
print(A * B)
print(A / B)
print(A % B)
정답:
A, B = map(int, input().split())
print(A + B) # A + B
print(A - B) # A - B
print(A * B) # A * B
print(A // B) # A / B (정수 몫)
print(A % B) # A % B (나머지)
왜 틀렸는가?
위에 조건들을 자세하게 보면 몫을 원한다. 이러한 점을 생각하여 계산해야한다. (/)는 소수점까지 표현하는 연산자이며 (//)는 몫만 보여주는 연산자이다.
기존에 알았던 내용
앞에 내용과 동일
새롭게 알게 된 내용
(//) 연산자와 (/) 연산자의 차이
궁금한점
파이썬의 연산자의 종류는?
파이썬에서 사용되는 연산자는 다양한 종류로 나뉜다. 각각의 연산자는 특정한 목적을 가지고 있으며, 크게 다음과 같은 유형으로 분류할 수 있다.
1) 산술 연산자
- + : 더하기 (덧셈)
- - : 빼기 (뺄셈)
- * : 곱하기 (곱셈)
- / : 나누기 (실수 나눗셈)
- // : 나누기 (정수 나눗셈, 몫을 구함)
- % : 나머지 (모듈로 연산)
- ** : 거듭제곱 (지수 연산)
2) 비교 연산자
- == : 같다
- != : 같지 않다
- > : 크다
- < : 작다
- >= : 크거나 같다
- <= : 작거나 같다
3) 논리 연산자
- and : 두 조건이 모두 참일 때 참
- or : 두 조건 중 하나라도 참이면 참
- not : 조건이 참이면 거짓, 거짓이면 참으로 반환
x = 10
if not x > 5:
print("x는 5보다 크지 않다.")
else:
print("x는 5보다 크다.") # 결과: X는 5보다 크다.
4) 할당 연산자
- = : 변수에 값을 할당
- += : 더한 값을 할당 (예: a += 2는 a = a + 2와 동일)
- -= : 뺀 값을 할당
- *= : 곱한 값을 할당
- /= : 나눈 값을 할당
- //= : 정수 나누기를 한 값을 할당
- %= : 나머지를 구한 값을 할당
- **= : 거듭제곱한 값을 할당
5) 비트 연산자
- & : 비트 AND 연산
- | : 비트 OR 연산
- ^ : 비트 XOR 연산
a = 5 # 이진수로 0101
b = 3 # 이진수로 0011
result = a ^ b # 비트 XOR 연산
print(result) # 결과 출력
0101 (5)
^ 0011 (3)
--------
0110 (6)
- ~ : 비트 NOT 연산 (비트를 반전시킴)
- << : 비트를 왼쪽으로 이동 (시프트 연산)
x = 5 # 이진수로 0101
result = x << 1 # 5를 1비트 왼쪽으로 이동
print(result) # 결과 출력
0101 (5)
<< 1
----
1010 (10)
- >> : 비트를 오른쪽으로 이동
6) 식별 연산자
- is : 두 객체가 같은 객체인지 여부를 비교
a = [1, 2, 3]
b = a # b는 a와 같은 객체를 참조
print(a is b) # True, a와 b는 같은 객체를 참조
- is not : 두 객체가 다른 객체인지 여부를 비교
c = [1, 2, 3] # 새로운 리스트 객체를 생성
print(a is not c) # True, a와 c는 같은 값을 가지지만 다른 객체
7) 맴버쉽 연산자
- in : 특정 값이 시퀀스(리스트, 문자열 등)에 존재하는지 확인
numbers = [1, 2, 3, 4, 5]
# 3이 리스트에 포함되어 있는지 확인
if 3 in numbers:
print("3은 리스트에 존재합니다.")
else:
print("3은 리스트에 존재하지 않습니다.")
text = "Hello, World!"
# "Hello"가 문자열에 포함되어 있는지 확인
if "Hello" in text:
print("'Hello'는 문자열에 존재합니다.")
else:
print("'Hello'는 문자열에 존재하지 않습니다.")
- not in : 특정 값이 시퀀스에 존재하지 않는지 확인
fruits = ["apple", "banana", "cherry"]
# "orange"가 리스트에 포함되어 있지 않은지 확인
if "orange" not in fruits:
print("오렌지는 리스트에 존재하지 않습니다.")
else:
print("오렌지는 리스트에 존재합니다.")
sentence = "Python is great!"
# "Java"가 문자열에 포함되어 있지 않은지 확인
if "Java" not in sentence:
print("'Java'는 문자열에 존재하지 않습니다.")
else:
print("'Java'는 문자열에 존재합니다.")
여기서 주의할 점은 for에서의 in은 반복을 위한 것이고, if 문 등에서의 in은 포함 여부를 판단하는 것이다. 이 점을 명확히 이해하는 것이 중요하다.
8) 기타 연산자
- [] : 리스트, 튜플, 문자열 등에서 특정 요소에 접근
- () : 함수 호출, 우선순위 지정
- : : 슬라이싱에 사용 (리스트나 문자열의 특정 범위에 접근)
- , : 튜플 생성, 함수의 여러 인자 전달
자기 자신에 대한 평가
1, 파이썬의 기본 문법과 함수들에 대한 이해도가 높아지고 있다. 특히 map(), input(), split(), print() 등의 함수 사용이 능숙해졌다.
2. 다양한 연산자에 대한 분류와 사용법을 잘 이해하고, 각각의 예시를 통해 확인할 수 있었다.
3. 문제를 해결하는 과정에서 자신의 코드를 분석하고, 오류를 찾아내는 능력이 향상되었다.
다음에 하면 좋을 내용
1. 파이썬의 내장 함수(예: sorted(), filter(), map() 등)와 외부 라이브러리(예: numpy, pandas)에 대해 학습해 보자. 데이터 처리 및 분석에 대한 기초를 다질 수 있다.