문자열에서 해당 인덱스의 값을 뽑아와 숫자로 매핑한다. 자바에도 물론 같은 기능이 있지만 파이썬이 확실히 코드가 짧다(아직까지는). print() 마지막에 붙은 sep='\n'은 리스트의 각 원소를 개행문자로 나눠주는 역할을 한다. a = int(input()) b = input() x = int(b[2]) y = int(b[1]) z = int(b[0]) print(a * x, a * y, a * z, a * int(b), sep='\n')
파이썬은 리스트 생성도 굉장히 간단하다. 입력으로 받아서 그래도 리스트로 변환하는 것도 간단하고. 반복문 사용도 직관적이라 배우기 편한 것 같다. 빨리 익숙해지는 수밖에! chess = [1, 1, 2, 2, 2, 8] a = list(map(int, input().split())) for i in range(6): print(chess[i] - a[i], end=' ') 2 1 2 1 2 1 -1 0 0 1 0 7
파이썬은 마치 계산기처럼 숫자 간의 사칙연산과 기타 연산을 지원한다. 특이하게도 나눗셈이 '/'와 '//'로 나뉘는데, 각각 결과를 float과 int(소수점 버림) 나눗셈 연산이다. 문제의 조건을 만족시키려면 '//'를 사용해야 한다. 추가로 입력받아 값을 나누고 매핑하는 것도 굉장히 간단한 편이다. a, b = map(int, input().split()) print(a + b) print(a - b) print(a * b) print(a // b) print(a / b) print(a % b) 7 3 10 4 21 2 2.3333333333333335 1
문제 총 N개의 문자열로 이루어진 집합 S가 주어진다. 각 문자열은 입력 순서대로 1부터 시작하는 번호를 부여받는다. 입력으로 주어지는 문자와 번호에 대해 대응하는 값을 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 문자열의 개수 N과 문제의 개수 M (1 ≤ N, M ≤ 100,000)이 주어진다. 다음 N개의 줄에는 집합 S에 포함되어 있는 문자열들이 주어진다. 다음 M개의 줄에는 검사해야 하는 문자열과 번호들이 주어진다. 입력으로 주어지는 문자열은 알파벳 대문자와 소문자로 이루어져 있으며, 길이는 최소 2, 최대 20이다. 또한 입력으로 주어지는 숫자는 1과 N 사이의 숫자이다. 집합 S에 같은 문자열이 여러 번 주어지는 경우는 없다. 출력 첫째 줄부터 차례대로 M개의 주에 문제에 대한 답을 출력..
문제 총 N개의 문자열로 이루어진 집합 S가 주어진다. 입력으로 주어지는 M개의 문자열 중에서 집합 S에 포함되어 있는 것이 총 몇 개인지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 문자열의 개수 N과 M (1 ≤ N ≤ 10,000, 1 ≤ M ≤ 10,000)이 주어진다. 다음 N개의 줄에는 집합 S에 포함되어 있는 문자열들이 주어진다. 다음 M개의 줄에는 검사해야 하는 문자열들이 주어진다. 입력으로 주어지는 문자열은 알파벳 소문자로만 이루어져 있으며, 길이는 500을 넘지 않는다. 집합 S에 같은 문자열이 여러 번 주어지는 경우는 없다. 출력 첫째 줄에 M개의 문자열 중에 총 몇 개가 집합 S에 포함되어 있는지 출력한다. 풀이 지난번 문제와 마찬가지로 HashSet을 연습하라는 문제이다. N개의..
문제 지민이는 자신의 저택에서 NM개의 단위 정사각형으로 나누어져 있는 N×M 크기의 보드를 찾았다. 어떤 정사각형은 검은색으로 칠해져 있고, 나머지는 흰색으로 칠해져 있다. 지민이는 이 보드를 잘라서 8×8 크기의 체스판으로 만들려고 한다. 체스판은 검은색과 흰색이 번갈아서 칠해져 있어야 한다. 구체적으로, 각 칸이 검은색과 흰색 중 하나로 색칠되어 있고, 변을 공유하는 두 개의 사각형은 다른 색으로 칠해져 있어야 한다. 따라서 이 정의를 따르면 체스판을 색칠하는 경우는 두 가지뿐이다. 하나는 맨 왼쪽 위 칸이 흰색인 경우, 하나는 검은색인 경우이다. 보드가 체스판처럼 칠해져 있다는 보장이 없어서, 지민이는 8×8 크기의 체스판으로 잘라낸 후에 몇 개의 정사각형을 다시 칠해야겠다고 생각했다. 당연히 8..
문제 세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 옮기려 한다. 한 번에 한 개의 원판만을 다른 탑으로 옮길 수 있다. 쌓아 놓은 원판은 항상 위의 것이 아래의 것보다 작아야 한다. 이 작업을 수행하는데 필요한 이동 순서를 출력하는 프로그램을 작성하라. 단, 이동 횟수는 최소가 되어야 한다. 아래 그림은 원판이 5개인 경우의 예시이다. 입력 첫째 줄에 첫 번째 장대에 쌓인 원판의 개수 N (1 ≤ N ≤ 20)이 주어진다. 출력 첫째 줄에 옮긴 횟수 K를 출력한다. 두 번째 줄부터 수행 과정을 출력한다. 두 번째 줄부터 K개의 줄에 걸쳐 두 정수 A B를 빈..
문제 카지노에서 제일 인기 있는 게임 블랙잭의 규칙은 상당히 쉽다. 카드의 합이 21을 넘지 않는 한도 내에서, 카드의 합을 최대한 크게 만드는 게임이다. 블랙잭은 카지노마다 다양한 규정이 있다. 한국 최고의 블랙잭 고수 김정인은 새로운 블랙잭 규칙을 만들어 상근, 창영이와 게임하려고 한다. 김정인 버전의 블랙잭에서 각 카드에는 양의 정수가 쓰여 있다. 그다음, 딜러는 N장의 카드를 모두 숫자가 보이도록 바닥에 놓는다. 그런 후에 딜러는 숫자 M을 크게 외친다. 이제 플레이어는 제한된 시간 안에 N장의 카드 중에서 3장의 카드를 골라야 한다. 블랙잭 변형 게임이기 때문에, 플레이어가 고른 카드의 합은 M을 넘지 않으면서 M과 최대한 가깝게 만들어야 한다. N장의 카드에 써져 있는 숫자가 주어졌을 때, M..
문제 오늘도 서준이는 병합 정렬 수업 조교를 하고 있다. 아빠가 수업한 내용을 학생들이 잘 이해했는지 문제를 통해서 확인해 보자. N개의 서로 다른 양의 정수가 저장된 배열 A가 있다. 병합 정렬로 배열 A를 오름차순 정렬할 경우 배열 A에 K 번째 저장되는 수를 구해서 우리 서준이를 도와주자. 입력 첫째 줄에 배열 A의 크기 N(5 ≤ N ≤ 500,000), 저장 횟수 K(1 ≤ K ≤ 108)가 주어진다. 다음 줄에 서로 다른 배열 A의 원소 A1, A2,..., AN이 주어진다. (1 ≤ Ai ≤ 109) 출력 배열 A에 K 번째 저장되는 수를 출력한다. 저장 횟수가 K 보다 작으면 -1을 출력한다. 풀이 병합 정렬을 한 번 구현해 보라는 문제이다. 그냥 구현하라고 하면 다른 정렬로 통과할 수도 ..
- Total
- Today
- Yesterday
- 맛집
- 세계일주
- 야경
- Algorithm
- 유럽여행
- spring
- 동적계획법
- 칼이사
- a6000
- Python
- 여행
- BOJ
- Backjoon
- 유럽
- 면접 준비
- 알고리즘
- RX100M5
- 스트림
- 세모
- 지지
- 세계여행
- 리스트
- 파이썬
- 남미
- 기술면접
- java
- 중남미
- 백준
- 자바
- 스프링
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |