Algorithm 179

[Python] 성적이 낮은 순서로 학생 출력하기

문제 N명의 학생 정보가 있다 학생 정보는 학생의 이름과 학생의 성적으로 구분된다 각 학생의 이름과 성적 정보가 주어졌을 때 성적이 낮은 순서대로 학생의 이름을 출력하는 프로그램을 작성하시오 입력 2 홍길동 95 이순신 77 출력 이순신 홍길동 문제 풀이 array[1] 인 성적별로 오름차순 정렬 array[0] 번째 값 들만 출력 코드 n = int(input()) array = [] for i in range(n): array.append(input().split()) array = sorted(array, key=lambda score:score[1]) for student in array: print(student[0], end = ' ')

Algorithm/Sort 2023.01.20

[Python] 위에서 아래로

문제 하나의 수열에는 다양한 수가 존재한다. 이러한 수는 크기에 상관없이 나열되어 있다. 이 수를 큰 수부터 작은 수의 순서로 정렬해야 한다. 수열을 내림차순으로 정렬하는 프로그램을 만드시오 입력 3 15 27 12 출력 27 15 12 문제 풀이 입력받은 수를 배열에 저장한 후 역순으로 정렬 코드 n = int(input()) array = [] for i in range(n): array.append(int(input())) array.sort(reverse=True) for i in array: print(i, end=' ')

Algorithm/Sort 2023.01.20

[Python] 프로그래머스 '자물쇠와 열쇠'

문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 Key를 90도씩 회전하는 함수 따로 구현 자물쇠의 3배 크기인 지도를 새로 만들기 자물쇠의 홈과 열쇠의 홈이 만나면 값이 1이 되므로 자물쇠에 열쇠를 넣고 모든 부분의 합이 1이 되면 True 한 곳이라도 1이 아니라면 False출력 코드 # key 90도 회전 def rotate_a_matrix_by_90_degree(a): n = len(a) #행 m = len(a[0]) #열 result = [[0] * m for _ in range(n)] #결과리스트 for i in range(n): ..

[Python] 백준 11305번 '주유소'

문제 13305번: 주유소 표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 도시의 개수를 나타내는 정수 N(2 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 인접한 두 도시를 연결하는 도로의 길이가 제일 왼쪽 도로부터 N-1 www.acmicpc.net 입력 표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 도시의 개수를 나타내는 정수 N(2 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 인접한 두 도시를 연결하는 도로의 길이가 제일 왼쪽 도로부터 N-1개의 자연수로 주어진다. 다음 줄에는 주유소의 리터당 가격이 제일 왼쪽 도시부터 순서대로 N개의 자연수로 주어진다. 제일 왼쪽 도시부터 제일 오른쪽 도시까지의 거리는 1이상 1,000,000,000 이하의 자연수이다. 리터당 가격은 1..

Algorithm/백준 2023.01.18

[Python] 1541번 '잃어버린 괄호'

문제 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net 입력 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 많이 연속되는 숫자는 없다. 수는 0으로 시작할 수 있다. 입력으로 주어지는 식의 길이는 50보다 작거나 같다. 출력 첫째 줄에 정답을 출력한다 문제 풀이 가장 작은 수를 만드는 방법은 -를 기준으로 나눈 후 다 더해서 -연산을 해줘야 함 예를 들어 2..

Algorithm/백준 2023.01.18

[Python] 백준 11399번 'ATM'

문제 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net 입력 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) 출력 첫째 줄에 각 사람이 돈을 인출하는데 필요한 시간의 합의 최솟값을 출력한다. 문제 풀이 대기 시간을 입력받은 후 오름차순으로 정렬 ( 가장 적은 대기시간 발생시키기 위해) 0 + (0 + 1) + (0 + 1 + 2) 이런식으로 더해주면 되므로 이중 for문 돌려서 0번째 인덱스부터 값 더하기 I까지 값 더하기 더한..

Algorithm/백준 2023.01.17

[Python] 백준 1931번 '회의실 배정'

문제 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 입력 첫째 줄에 회의의 수 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N+1 줄까지 각 회의의 정보가 주어지는데 이것은 공백을 사이에 두고 회의의 시작시간과 끝나는 시간이 주어진다. 시작 시간과 끝나는 시간은 231-1보다 작거나 같은 자연수 또는 0이다. 출력 첫째 줄에 최대 사용할 수 있는 회의의 최대 개수를 출력한다. 문제 풀이 각 회의시간을 비교하기 위해 time 리스트에 저장 이전 회의가 끝난 시간과 시작하려는 회의가 시작하는 시간이 같거나 시작하려는 시간이 더 늦어야 회의 가능 최대 회의 시간을 세기 위해, 회의가 일찍 끝나는 순으로 정렬한 후,..

Algorithm/백준 2023.01.17

[Python] 게임 개발

문제 현민이는 게임 캐릭터가 맵 안에서 움직이는 시스템을 개발 중이다. 캐릭터가 있는 장소는 1 x 1 크기의 정사각형으로 이뤄진 N x M 크기의 직사각형으로, 각각의 칸은 육지 또는 바다이다. 캐릭터는 동서남북 중 한 곳을 바라본다 맵의 각 칸은(A, B)로 나타낼 수 있고, A는 북쪽으로부터 떨어진 칸의 개수, B는 서쪽으로부터 떨어진 칸의 개수이다 게임 캐릭터는 상하좌우로 움직일 수 있고, 바다로 되어 있는 공간에는 갈 수 없다 캐릭터의 움직임을 설정하기 위해 정해 놓은 메뉴얼은 이러하다 1. 현재 위치에서 현재 방향을 기준으로 왼쪽 방향(반시계 방향으로 90도 회전 한 방향)부터 차례대로 갈 곳 을 정한다 2. 캐릭터의 바로 왼쪽 방향에 아직 가보지 않은 칸이 존재한다면, 왼쪽 방향으로 회전한 ..

[Python] 왕실의 나이트

문제 8 x 8 좌표평면에서 나이트의 위치가 주어졌을 때 나이트가 이동할 수 있는 경우의 수를 출력하는 프로그램을 작성하시오 이 때 왕실의 정원에서 행 위치를 표현할 때는 1부터 8로 표현하며, 열 위치를 표현할 때는 a부터 h로 표현한다 나이트는 이동할 때 L자 형태로만 이동할 수 있으며 다음과 같은 2가지 경우로 이동할 수 있다 1. 수평으로 두 칸 이동한 뒤에 수직으로 한 칸 이동하기 2. 수직으로 두 칸 이동한 뒤에 수평으로 한 칸 이동하기 입력 첫째 줄에 8 x 8 좌표 평면상에서 현재 나이트가 위치한 곳의 좌표를 나타내는 두 문자로 구성된 문자 열이 입력된다 입력 문자는 a1처럼 열과 행으로 이뤄진다 출력 첫째 줄에 나이트가 이동할 수 있는 경우의 수를 출력하시오 문제 풀이 입력받은 후 행과 ..