본문 바로가기

Python/Python-코드업 100제

(15)
Python 코드업 100제 [15, 기초-2차원 배열] [우리밋의 LAST 보너스 문제] 내 미래 해당 문제는 이차원 배열의 개념과 원리를 파악하기 위해 "우리밋"이 직접 만든 문제임을 알려드립니다. x축과 y축의 개념을 머릿 속에서 자유롭게 조작할 수 있도록 훈련하기 위해 만든 문제입니다. 이 점을 기억하시고 아래 문제를 푸시길 바랍니다. 해당 문제를 배포하시거나 외부에서 사용하실 때는 "우리밋"을 한번씩만 거론 부탁드리겠습니다. 구독만 해주신다면 그것으로 충분합니다. ps. "내 미래"가 해당 문제 이름입니다. 참고로 전 다녀왔습니다. :) 훈련병인 철수는 교관의 지시에 따라야한다. 교관은 "좌로 1보, 하로 2보 가!"와 같이 좌,우,상,하로 이동할 것을 명령한다. 철수의 현재 위치가 입력으로 주어질 때 교관의 명령대로 이동한 위치는 어디일까? 제한 조..
Python 코드업 100제 [14, 기초-1차원 배열] [93] 이상한 출석 번호 부르기1 정보 선생님은 수업을 시작하기 전에 이상한 출석을 부른다. 선생님은 출석부를 보고 번호를 부르는데, 학생들의 얼굴과 이름을 빨리 익히기 위해 번호를 무작위(랜덤)으로 부른다. 그리고 얼굴과 이름이 잘 기억되지 않는 학생들은 번호를 여러 번 불러 이름과 얼굴을 빨리 익히려고 하는 것이다. 출석 번호를 n번 무작위로 불렀을 때, 각 번호(1 ~ 23)가 불린 횟수를 각각 출력해보자. 입력 첫 번째 줄에 출석 번호를 부른 횟수인 정수 n이 입력된다. (1 ~ 10000) 두 번째 줄에는 무작위로 부른 n개의 번호(1 ~ 23)가 공백을 두고 순서대로 입력된다. 10 1 3 2 2 5 6 7 4 5 9 출력 1번부터 번호가 불린 횟수를 순서대로 공백으로 구분하여 한 줄로 출력..
Python 코드업 100제 [13, 기초-종합] [78] 짝수 합 구하기 정수(1 ~ 100) 1개를 입력받아 1부터 그 수까지 짝수의 합을 구해보자. 입력 정수 1개가 입력된다. (0 ~ 100) 5 출력 1부터 입력된 수까지 짝수의 합을 출력한다. 6 Tip:: range()함수의 첫 인자를 2로하고, 세 번째 인자를 2로 하면 2에서 2씩 증가하기 때문에 모든 숫자가 짝수가 된다. 따라서 이를 모두 더해주면 되는 것. 더보기 intInput = int(input()) countNum = 0 for i in range(2, intInput, 2): countNum = i + countNum print(countNum) [79] 원하는 문자가 입력될 때까지 반복 출력하기 'q'가 입력될 때까지 입력한 문자를 계속 출력하는 프로그램을 작성해보자. 입력..
Python 코드업 100제 [12, 기초-반복실행구조] [71] 정수가 순서대로 입력된다. (단, 개수는 알 수 없다.) 0이 아니면 입력된 정수를 출력하고, 0이 입력되면 출력을 중단해보자. while( ), for( ) 등의 반복문을 사용할 수 없다. 입력 정수가 순서대로 입력된다. 7 4 2 3 0 1 5 6 9 10 8 출력 입력된 정수를 줄을 바꿔 하나씩 출력하는데, 0이 입력되면 종료한다. (0은 출력하지 않는다.) 7 4 2 3 Tip:: 원래 이 문제는 goto문을 이용해 풀도록 유도한 것인데 파이썬에서는 goto문을 제공하지 않으므로 함수를 이용하여 풀도록 한다. 파이썬에서는 do~while()과 같은 반복문도 제공하지 않는다. 파이썬에서는 함수를 이용하여 goto문처럼 사용하면 된다. 함수 배우러가기 더보기 listLike = list(ma..
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개의 정수형 ..