본문 바로가기

Python

(38)
Python 코드업 100제 [11, 기초-조건/선택실행구조] [65] 세 정수 a, b, c가 입력되었을 때, 짝수만 출력해보자. Tip1:: 조건문 이용 Tip2:: filter() 이용 '*(asterisk)' 이용 익명함수 lambda 이용 더보기 #1번안 a, b, c = map(int, input().split()) def ifOdd(i): if i % 2 == 0: return i else: return "" print(ifOdd(a),ifOdd(b),ifOdd(c)) #출제자 답안 a, b, c = map(int, input().split()) print( *(filter(lambda num: num%2 == 0, [a, b, c])) ) #필터와 람다를 이용하여 깔끔하게 처리하였다. [66] 세 정수 a, b, c가 입력되었을 때, 짝(even)/홀..
Python 코드업 100제 [10, 기초-삼항연산] [63] 입력된 두 정수 a, b 중 큰 값을 출력하는 프로그램을 작성해보자. 단, 조건문을 사용하지 않고 3항 연산자 'and or' 를 사용한다. Tip:: 파이썬에서의 3항(세 개의 요소로 이루어지는) 연산자는 다른 언어와 사용 방식이 다소 다르다. 타 언어 : "조건식 ? (참일 때의 값) : (거짓일 때의 값)” 파이썬에서의 3항(ternary) 연산자는 "조건식 and (참일 때의 값) or (거짓일 때의 값)” 의 형태로 사용하는 연산자이다. 조건식의 계산 결과가 참인 경우에는 'and' 오른쪽의 값 또는 식으로 바뀌고, 거짓인 경우에는 'or' 오른쪽의 값 또는 식으로 바뀐다. 이것이 가능한 이유는 파이썬이 인터프리터 방식으로 동작하기 때문이다. **인터프리터** 파이썬은 스크립트 언어이며..
Python 코드업 100제 [9, 기초-비트단위 논리연산] [59] 입력 된 정수를 비트단위로 참/거짓을 바꾼 후 정수로 출력해보자. 예를 들어 1이 입력되었을 때 저장되는 1을 32비트 2진수로 표현하면 00000000 00000000 00000000 00000001 이고, ~1은 11111111 11111111 11111111 11111110 가 되는데 이는 -2를 의미한다. Tip:: 비트단위(bitwise)연산자 ' ~ ' 를 붙이면 된다. (~ : tilde, 틸드라고 읽는다.) **비트단위(bitwise) 연산자** ~(bitwise not), &(bitwise and), |(bitwise or), ^(bitwise xor), (bitwise right shift) 틈새 자료구조(오버플로우 설명) **참고** 컴퓨터에 저장되는 모든 데이터들은 2진수 ..
Python 코드업 100제 [8, 기초-논리연산] [53] 1(true, 참) 또는 0(false, 거짓) 이 입력되었을 때 반대로 출력하는 프로그램을 작성해보자. **참고** 파이썬에서 비교/관계 연산(==, !=, >, =, > '뒤' 더보기 a, b = map(int, input().split()) print (bool(a and b)) [55] 두 개의 참(1) 또는 거짓(0)이 입력될 때, 하나라도 참이면 참을 출력하는 프로그램을 작성해보자. Tip:: 파이썬에서는 OR연산값이 참이면 참인 값을 출력하게 된다. ex) '참' or 0 >> '참 ex) 0 or True >> True 더보기 a, b = map(int, input().split()) print (bool(a or b)) [우리밋이 알려주는 Bonus 문제 (1)] 1개의 정수형 ..
Python 코드업 100제 [7, 기초-비교연산] [49] 두 정수(a, b)를 입력받아 a가 b보다 크면 1을, a가 b보다 작거나 같으면 0을 출력하는 프로그램을 작성해보자. **참고** 어떤 값을 비교하기 위해 비교/관계연산자(comparison/relational)를 사용할 수 있다. 비교/관계연산자 > 는 왼쪽의 값이 오른쪽 값 보다 큰 경우 참(true)을 나타내는 정수값 1로 계산하고, 그 외의 경우에는 거짓(false)를 나타내는 정수값 0으로 계산한다. 비교/관계연산자도 일반적인 사칙연산자처럼 주어진 두 수를 이용해 계산을 수행하고, 그 결과를 1(참), 또는 0(거짓)으로 계산해 주는 연산자이다. 비교/관계연산자는 >, =, b: print(1) else: print(0) [50] 두 정수(a, b)를 입력받아 a와 b가 같으면 1을,..
Python 코드업 100제 [6, 기초-비트 시프트 연산] [47] 정수 1개를 입력받아 2배 곱해 출력해보자. Tip:: 곱하기 2를 해도 되지만 이진수를 왼쪽으로 한 번씩 이동시켜주면 기존 값의 두 배가 된다. ex) 5(101) => 10(1010), 7(111) => 14(1110) 더보기 #답안 1 inputInt = int(input()) print( inputInt * 2 ) #답안 2 inputInt = int(input()) print( inputInt
Python 코드업 100제 [5, 기초-산술연산] [38] 정수 2개를 입력받아 합을 출력하는 프로그램을 작성해보자. 더보기 firstInput, secondInput = map(int, input().split()) print(firstInput+secondInput) [39] 정수 2개를 입력받아 합을 출력하는 프로그램을 작성해보자. 실제 문제에서는 굉장히 넓은 정수 범위의 데이터형을 요구하는 문제이나 파이썬에서는 int()로 처리가 가능하다. 예를 들어 C에서 unsinged int보다도 크며 unsinged long과 같은 범위를 지니고 있다고 한다. 실제 범위 범위 : -9223372036854775808 ~ 9223372036854775807 이보다 큰 범위를 지정하고자 할 때는 long 데이터 형을 이용하면 된다. 파이썬에서는 4가지의 데이..
Python 코드업 100제 [4, 기초-출력변환] [31] 10진수를 입력받아 8진수(octal)로 출력해보자. Tip:: 8진수는 '0o12'처럼 숫자 앞에 '0o'를 붙여준다. 이것으로 '12'가 8진수의 '12'임을 인지한다. 10진수를 8진수로 변환하는 함수는 oct()이며, '0o12'와 같이 출력되므로 앞 두자리를 생략하고 출력하면된다. 따라서 '0o12'[2:]를 해주면 되는 것. 더보기 tenByOct = int(input()) print(oct(tenByOct)[2:]) [32] 10진수를 입력받아 16진수(hexadecimal)로 출력해보자. Tip:: 16진수는 '0xa'처럼 숫자 앞에 '0x'를 붙여준다. 이것으로 'a'가 16진수의 'a'임을 인지한다. 10진수를 16진수로 변환하는 함수는 hex()이며, '0xa'와 같이 출력되..