본문 바로가기

전체 글

(62)
[Python] 2108번: 통계학 https://www.acmicpc.net/problem/2108 2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net 최빈값 구하는게 너무 어려웠다 덕분에 좋은거 하나 알고 간다. (최빈값을 구할때 쓸수있는) from collentions import Conter , Counter.most_common(n) # # 산술평균 # # 중앙값 # # 최빈값 (여러개 존재시 가장 작은 값중 2번쨰를 출력 한다) # # 범위 출력한다 # import sys # N= int(sys.stdin.readline()) # N 은 항상 홀수 이..
[Python] 1436번: 영화감독 숌 https://www.acmicpc.net/problem/1436 1436번: 영화감독 숌 666은 종말을 나타내는 숫자라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타 www.acmicpc.net import sys # from itertools import permutations Table=[str(a) for a in range(666,10000000) if '666' in str(a)] N= int(sys.stdin.readline()) print(Table[N-1]) # 순열을 사용해서 666이 들어간 문자열 조합을 만든뒤 666~10000000까지의 정수 조합을 통해서 # 해당 ..
[Python] 1018번: 체스판 다시 칠하기 https://www.acmicpc.net/problem/1018 1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net 모든 경우의 수를 탐색하는 브루트포스 알고리즘을 활용해서 시작점(x,y)에서부터 2가지 경우의수를 B,W를 모두 따져보고 가장 작은 경우의 수를 찾는 문제이다. # # https://www.acmicpc.net/problem/1018 # # N: 행개수 M: 열개수 # # 8
[Python] 20310번: 타노스 https://www.acmicpc.net/problem/20310 20310번: 타노스 어느 날, 타노스는 0과 1로 이루어진 문자열 $S$를 보았다. 신기하게도, $S$가 포함하는 0의 개수와 $S$가 포함하는 1의 개수는 모두 짝수라고 한다. 갑자기 심술이 난 타노스는 $S$를 구성하는 문자 www.acmicpc.net 일단 본인은 이문제를 처음 풀때 25점의 부분점수만 맞았다. 그 이유는 1010이 있다는 가정하에 "문자열이 표기된 순서를 그대로 유지하되 1과 0 삭제를 진행해야 하는것이다" 본인은 그냥 1의개수 0의개수 세어준뒤 각각의 절반의 개수만큼 빈 문자열에 00000 넣고 111111넣어주어서 0000001111111 같은 꼴로 나왔는데 이건 기존에 있던 문자열의 배치 순서를 무시하므로 ..
[Python] 1085번: 직사각형에서 탈출 https://www.acmicpc.net/problem/1085 1085번: 직사각형에서 탈출 한수는 지금 (x, y)에 있다. 직사각형은 각 변이 좌표축에 평행하고, 왼쪽 아래 꼭짓점은 (0, 0), 오른쪽 위 꼭짓점은 (w, h)에 있다. 직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램 www.acmicpc.net 동서남북 4방향중에서 가장 짧은 거리를 달려가면 직사각형에서 탈출하는데 가장 효율적인걸 알면 된다. min()함수를 4방향중 최소 값을 구하면 끝~ import sys x,y,w,h=map(int,sys.stdin.readline().strip().split()) print(min(x,y,w-x,h-y))
[Python] 1259번: 펠린드롬수 https://www.acmicpc.net/submit/1259/53021722 로그인 www.acmicpc.net 앞뒤가 똑같으면 yes다 다르면 no 기러기 스위스 우영우 같은 단어들을 의미한다 import sys while(True): A=sys.stdin.readline().strip() if A=='0': break if A == A[::-1]: #처음부터 끝까지 슬라이싱하되 증감폭이 -1로 설정(문자열을 reverse 하는 방법이다!)\ print('yes') else: print('no') [::-1]의 의미? 리스트 슬라이싱을 하되, [a:b:x] 가 존재한다고 가정하에 a~b-1까지의 범위의 리스트가 만들어지되, x 만큼 증감폭(건너뛰기)를 가진다고 생각하자 ex: [1:20:2]인경우 ..