이번엔 주어진 값 중에 최대값이 몇 번째 위치하는지 판별하는 문제이다. 최대값을 찾는 함수 max()를 이용해 값을 구한 뒤에, 역시 리스트에서 바로 지원하는 index()를 사용하면 끝. 이쯤 되니까 배열의 존재 의미가 의심스럽다. 그래서 없애버린 건지도.. import sys a = [] for i in range(9): a.append(int(sys.stdin.readline())) print(max(a), a.index(max(a)) + 1, sep='\n')
N개의 정수가 주어졌을 때 최대, 최소값을 찾는 문제이다. 리스트 단원이니까 리스트에 넣어서 해결했다. 파이썬에는 리스트에서 최대, 최소값을 골라주는 함수가 마련되어 있다. 이름도 간결하게 max()와 min(). 자바의 배열에는 이와같은 함수가 마련되어 있지 않아서 for문을 돌거나 할 필요가 있어서 잘 쓰지 않는데, 파이썬은 바로 지원해주니까 좋다. import sys n = int(sys.stdin.readline()) list = list(map(int, sys.stdin.readline().split())) print(min(list), max(list))
문제 정수 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에서부터 6까지의 눈을 가진 3개의 주사위를 던져서 다음과 같은 규칙에 따라 상금을 받는 게임이 있다. 같은 눈이 3개가 나오면 10,000원+(같은 눈)×1,000원의 상금을 받게 된다. 같은 눈이 2개만 나오는 경우에는 1,000원+(같은 눈)×100원의 상금을 받게 된다. 모두 다른 눈이 나오는 경우에는 (그 중 가장 큰 눈)×100원의 상금을 받게 된다. 예를 들어, 3개의 눈 3, 3, 6이 주어지면 상금은 1,000+3×100으로 계산되어 1,300원을 받게 된다. 또 3개의 눈이 2, 2, 2로 주어지면 10,000+2×1,000 으로 계산되어 12,000원을 받게 된다. 3개의 눈이 6, 2, 5로 주어지면 그중 가장 큰 값이 6이므로 6×100으로 계산되어 600원을 상금으로 받게..
문자열에서 해당 인덱스의 값을 뽑아와 숫자로 매핑한다. 자바에도 물론 같은 기능이 있지만 파이썬이 확실히 코드가 짧다(아직까지는). 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
문제 가로, 세로의 크기가 각각 100인 정사각형 모양의 흰색 도화지가 있다. 이 도화지 위에 가로, 세로의 크기가 각각 10인 정사각형 모양의 검은색 색종이를 색종이의 변과 도화지의 변이 평행하도록 붙인다. 이러한 방식으로 색종이를 한 장 또는 여러 장 붙인 후 색종이가 붙은 검은 영역의 넓이를 구하는 프로그램을 작성하시오. 예를 들어 흰색 도화지 위에 세 장의 검은색 색종이를 그림과 같은 모양으로 붙였다면 검은색 영역의 넓이는 260이 된다. 입력 첫째 줄에 색종이의 수가 주어진다. 이어 둘째 줄부터 한 줄에 하나씩 색종이를 붙인 위치가 주어진다. 색종이를 붙인 위치는 두 개의 자연수로 주어지는데 첫 번째 자연수는 색종이의 왼쪽 변과 도화지의 왼쪽 변 사이의 거리이고, 두 번째 자연수는 색종이의 아래..
문제 그림과 같이 9×9 격자판에 쓰인 81개의 자연수 또는 0이 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 행 몇 열에 위치한 수인지 구하는 프로그램을 작성하시오. 예를 들어, 다음과 같이 81개의 수가 주어지면 이들 중 최댓값은 90이고, 이 값은 5행 7열에 위치한다. 입력 첫째 줄부터 아홉 번째 줄까지 한 줄에 아홉 개씩 수가 주어진다. 주어지는 수는 100보다 작은 자연수 또는 0이다. 출력 첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 위치한 행 번호와 열 번호를 빈칸을 사이에 두고 차례로 출력한다. 최댓값이 두 개 이상인 경우 그 중 한 곳의 위치를 출력한다. 풀이 2차원 배열에 관련된 문제다. 하지만 크기가 정해진 데다 최대값 중 아무 위치나 출력하라고 했으니 가장 간단하게 첫..
- Total
- Today
- Yesterday
- 세계일주
- 유럽
- 지지
- 백준
- 여행
- a6000
- 맛집
- 스프링
- 중남미
- spring
- 자바
- 칼이사
- java
- BOJ
- 파이썬
- Algorithm
- Backjoon
- 기술면접
- RX100M5
- 면접 준비
- 스트림
- 야경
- 유럽여행
- 남미
- 동적계획법
- 알고리즘
- 세모
- 세계여행
- Python
- 리스트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |