기타
-
백준 파이썬 10828번 : 스택 시간초과 해결기타/알고리즘 2020. 12. 3. 22:35
10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 스택을 몰라도 충분히 풀 수 있다. solved.ac에서 실버4 판정을 받고 있는데, 절대 그럴만한 문제는 아니다. 다만 정답률이 상당히 낮은데, 시간이 빡빡해서 그렇다. 별다른 궁리가 필요하지는 않고, input대신에 값을 입력받는 데 더 빠른 readline을 쓰면 된다. 백준 문제에서 시간초과가 날 때는 대부분 readline을 쓰거나 PyPy로 제출하면 해결된다. 참고로 import sys input = sys.stdin.readline ..
-
백준 파이썬 2428번 : 표절 이진탐색 풀이기타/알고리즘 2020. 12. 3. 21:52
https://www.acmicpc.net/problem/2428 2428번: 표절 첫째 줄에 제출한 솔루션의 개수 N이 주어진다. 둘째 줄에는 각 솔루션 파일의 크기 size(F1), size(F2), ..., size(FN)이 주어진다. (1 ≤ N ≤ 100,000, 1 ≤ size(Fi) ≤ 100,000,000) 솔루션 파일의 크기는 정수이 www.acmicpc.net 솔루션 파일의 크기가 a,b,c...로 주어졌을 때 a=b*0.9를 만족하는 문자쌍의 개수를 구해야 하는 문제다 입력값이 정수라는 데 주의하자. 따라서 리스트를 받을 때 float로 받아줘야 한다 1. 리스트를 입력받아 오름차순으로 정렬해준다. 그러면 모든 요소에 대해 a=b*0.9를 만족하는 요소의 최대 인덱스를 나타내므로 조건..
-
백준 파이썬 11947번 : 이런 반전이 풀이기타/알고리즘 2020. 12. 2. 22:53
11947번: 이런 반전이 첫째 줄에는 테스트 케이스의 개수를 나타내는 하나의 자연수 T가 주어집니다. 다음 T개의 각 줄에는 하나의 양의 정수 N이 주어집니다. (1 ≤ N ≤ 1,000,000,000) www.acmicpc.net 숫자 n이 주어질 때 '반전'은 각 자리 숫자 a에 대해 9-a를 한 것이다 '사랑스러움'은 숫자 n과 '반전'의 곱이다 이때 단순히 숫자 n의 '사랑스러움'을 구하는 것이 아님에 주의해야 한다. 한 숫자에 대해서만 계산한다면 간단한 문제지만, range(1,n+1) 범위에서 '사랑스러움'의 최댓값을 구해야하기 때문에 복잡해 보인다. 그러나 쉽게 유추할 수 있는 규칙성이 있어서 의외로 간단하다. 한 자리 숫자가 주어진다면 이들 수의 '사랑스러움'의 최대값은 4*5다. n 1..
-
백준 파이썬 5800번 : 성적 통계 풀이기타/알고리즘 2020. 12. 1. 19:17
5800번: 성적 통계 첫째 줄에 중덕 고등학교에 있는 반의 수 K (1 ≤ K ≤ 100)가 주어진다. 다음 K개 줄에는 각 반의 학생수 N (2 ≤ N ≤ 50)과 각 학생의 수학 성적이 주어진다. 시험 성적은 0보다 크거나 같고, 100보다 www.acmicpc.net Class X와 학생 점수를 받은 뒤 학생 수인 student[0]을 지워줬다. 그리고 가장 큰 인접한 점수 차이를 찾기 위해 lg라는 변수를 설정해줬다. 초기값을 0으로 두고 인접한 값의 차이의 최대값을 저장하는 반복문을 설정했다 k = int(input()) student = [] for j in range(1,k+1): student = list(map(int,input().split())) student = student[1:..
-
백준 파이썬 10709 : 기상캐스터 풀이기타/알고리즘 2020. 11. 30. 23:59
10709번: 기상캐스터 출력은 H 행으로, 각 행에는 공백으로 구분된 W 개의 정수를 출력한다. 출력의 i 번째 행 j 번째 정수 (1 ≦ i ≦ H, 1 ≦ j ≦ W) 는, 지금부터 몇 분후에 처음으로 구역 (i, j) 에 구름이 뜨는지를 표시 www.acmicpc.net 다차원리스트를 만들어 예제 값을 입력받고, 구름이 지나가는지 아닌지, 언제 지나가는지를 숫자로 표현하여 출력해야 하는 문제다. 나는 도시의 지도를 city, 출력할 리스트를 answer로 설정했다. 여기서 경우의 수는 크게 세 가지가 있다. 1. 구름이 아예 없는 열인 경우. -1인 경우. 2. 구름이 있는 칸인 경우. 0인 경우. 3. 구름이 곧 지나갈 칸인 경우. 1, 2, 3, ...인 경우. 이때 3가지 경우의 수를 나누는..