문제 문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다. S에는 QR Code "alphanumeric" 문자만 들어있다. QR Code "alphanumeric" 문자는 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ\$%*+-./: 이다. 입력 첫째 줄에 테스트 케이스의 개수 T(1 ≤ T ≤ 1,000)가 주어진다. 각 테스트 케이스는 반복 횟수 R(1 ≤ R ≤ 8), 문자열 S가 공백으로 구분되어 주어진다. S의 길이는 적어도 1이며, 20글자를 넘지 않는다. 출력 각 테스트 케이스에 대해 P를 출력한다. 풀이 반복해서 풀다보니..
문제 알파벳 소문자로만 이루어진 단어 S가 주어진다. 각각의 알파벳에 대해서, 단어에 포함되어 있는 경우에는 처음 등장하는 위치를, 포함되어 있지 않은 경우에는 -1을 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 단어 S가 주어진다. 단어의 길이는 100을 넘지 않으며, 알파벳 소문자로만 이루어져 있다. 출력 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출력한다. 단어의 첫 번째 글자는 0번째 위치이고, 두 번째 글자는 1번째 위치이다. 풀이 소싯적에 자바로 처음 이 문제를 만났을 때 꽤 고생했던 기억이 있다. 대부분의 문제가 그렇듯이 알고나면 별 ..
아스키코드 ↔ 문자 사이의 변환에 대한 문제이다. 답은 한 줄 짜리라 별로 거들 것이 없지만, 파이썬에서 아스키코드를 다루는 법은 처음이니까 정리할 겸 글을 남긴다. 파이썬은 아스키코드 변환을 위한 기본 함수를 제공한다. ord('a'): 문자 → 아스키코드 chr(97): 아스키코드 → 문자 hex(97): 아스키코드 → 헥사코드 사용법은 다른 기본함수와 마찬가지로 바로 불러다 쓰는 식이다. 정답을 포함해 코드를 보면 아래와 같다. print(ord(input())) ord('a') #97 chr(97) #a
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/S1BWE/btrYchvKOsK/3DxlhP91DqMqQg86NxELV0/img.png)
목차 Before Init: Function vs. Method 결론부터 말하면 둘은 위와 같은 관계이다. 나도 아직 조금 헷갈리는데, 한 마디로 구분하자면 클래스 내에 선언된 함수를 메서드라고 부르는듯하다. 그 말은 뒤집어 말하면 파이썬의 함수는 자바와는 다르게 클래스 없이 독립적으로 선언할 수 있다는 말이 되며, 실제로 어제 작은 기능을 하나 구현해 보면서 느껴보기도 했다. 클래스에 소속되어 있는가의 유무에 따라 사용 코드에도 아래와 같은 차이가 발생하며, print() # 함수 a.create() # 메서드 따지고 들자면 메서드도 함수이기 때문에 그냥 함수라 지칭해도 틀린 표현은 아니게 된다. 그럼 본론으로 들어가자. Python Functions Creating 파이썬의 함수 정의는 매우 쉽고 간..
정수 n개가 들어있는 리스트가 주어졌을 때 그 합을 반환하는 함수를 정의하는 문제이다. 안 그래도 슬슬 클래스나 함수에 대해 공부할 때가 되었다고 느끼고 있었는데, 마침 시작이 쉽고 좋다. 함수의 특징이나 세세한 사항에 대해서는 다른 쪽에 글을 파기로 하고, 일단 파이썬의 함수 정의는 아래와 같이 매우 간결하다. def solve(a): return sum(a) 이게 그대로 문제의 답이 된다. 함수를 정의할 때조차 매개변수의 자료형을 명시하지 않아도 된다. 이는 오버로딩 측면에서 굉장히 객체지향적이라 느껴졌다.
문제 "OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수는 3이 된다. "OOXXOXXOOO"의 점수는 1+2+0+0+1+0+0+1+2+3 = 10점이다. OX퀴즈의 결과가 주어졌을 때, 점수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 길이가 0보다 크고 80보다 작은 문자열이 주어진다. 문자열은 O와 X만으로 이루어져 있다. 출력 각 테스트 케이스마다 점수를 출력한다. 풀이 자바로 처음 이 문제를 마주쳤을 때 시간이 조금 소모됐던 기억이 있다. 다행히 아직 ..
문제 세준이는 기말고사를 망쳤다. 세준이는 점수를 조작해서 집에 가져가기로 했다. 일단 세준이는 자기 점수 중에 최댓값을 골랐다. 이 값을 M이라고 한다. 그러고 나서 모든 점수를 점수/M*100으로 고쳤다. 예를 들어, 세준이의 최고점이 70이고, 수학점수가 50이었으면 수학점수는 50/70*100이 되어 71.43점이 된다. 세준이의 성적을 위의 방법대로 새로 계산했을 때, 새로운 평균을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보다 크다. 출력 첫째 줄에 새로운 평균을 출력한다. 실제 정답과 출력값의 절대..
문제 정수 N개로 이루어진 수열 A와 정수 X가 주어진다. 이때, A에서 X보다 작은 수를 모두 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 N과 X가 주어진다. (1 ≤ N, X ≤ 10,000) 둘째 줄에 수열 A를 이루는 정수 N개가 주어진다. 주어지는 정수는 모두 1보다 크거나 같고, 10,000보다 작거나 같은 정수이다. 출력 X보다 작은 수를 입력받은 순서대로 공백으로 구분해 출력한다. X보다 작은 수는 적어도 하나 존재한다. 풀이 파이썬의 리스트는 출력할 때 '*'를 앞에 붙여주면 대괄호 없이 원소만 출력할 수 있다. 그리고 한 줄 입력 받아서 int로 매핑한 뒤에 바로 리스트로 만드는 것도 좋았다. import sys n, x = map(int, sys.stdin.readline().s..
문제 총 N개의 정수가 주어졌을 때, 정수 v가 몇 개인지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 정수의 개수 N(1 ≤ N ≤ 100)이 주어진다. 둘째 줄에는 정수가 공백으로 구분되어 있다. 셋째 줄에는 찾으려고 하는 정수 v가 주어진다. 입력으로 주어지는 정수와 v는 -100보다 크거나 같으며, 100보다 작거나 같다. 출력 첫째 줄에 입력으로 주어진 N개의 정수 중에 v가 몇 개인지 출력한다. 풀이 드디어 리스트, 말하자면 자료주고의 초입에 도달했다. 어제 잠깐 살펴본 바로는 파이썬에는 따로 배열이라는 자료형은 없고 리스트와 튜플이 존재하는데, 이 두 녀석은 여러모로 특이한 구석이 있어서 여기에 정리하기 보다는 따로 글을 작성해야 하는 수준이다. 아무튼 문제에 주어진 대로 입력을 받아서 리..
역시 간단한 문제이자 반복문 단원의 마지막 문제이다. 별 거 없어서 그냥 넘어갈까 했으나 흥미로운 구석이 약간은 있어서 가져왔다. 그 구석은 바로, 파이썬에는 우리들의 친구 증감 연산자(++, --)가 존재하지 않는다는 사실이다. 그냥 += 1, -= 1로 처리하는 모양이다. 증감연산자를 제거하게 된 배경에 대해서도 조금 궁금하지만, 이건 더 궁금해지면 알아보기로 하자. 일단 코드는 아래와 같다. a = int(input()) b = (a % 10) * 10 + (a // 10 + a % 10) % 10 cycle = 1 while b != a: cycle += 1 b = (b % 10) * 10 + (b // 10 + b % 10) % 10 print(cycle)
- Total
- Today
- Yesterday
- 중남미
- 자바
- 유럽여행
- 유럽
- Python
- 백준
- 리스트
- 세모
- 동적계획법
- 여행
- 세계일주
- 스프링
- java
- 스트림
- BOJ
- 야경
- 알고리즘
- 지지
- spring
- RX100M5
- 세계여행
- 기술면접
- a6000
- 남미
- 칼이사
- 맛집
- 면접 준비
- 파이썬
- Backjoon
- Algorithm
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |