직사각형 w x h 내부의 점(x, y)에서 밖으로 탈출하는 최소 거리를 구하는 문제 w - x , h - y 중 작은 걸 고르면 된다 단!! 그 거리보다 x, y가 0으로 가는게 더 빠를 수도 있으니 총 네 가지 중 가장 작은 것 출력 import sys x, y, w, h = map(int, sys.stdin.readline().split()) print(min((w-x), (h-y), x, y))
언뜻 보기엔 진짜 아,, 이거 경우의 수 다 구해야하는건가 ㅜㅜ 10,000개를 언제 다 구하지 ㅠ 싶었는데 생각해보니까 그냥 1씩 더하면 될 것 같았다..!! N = int(input()) S = [] count = 666 # 첫번재 수는 알고있으니까,, while len(S) != N : # 구해야하는 수 까지만 X = list(str(count)) for i in range(len(X)-2): if X[i] == X[i+1] == X[i+2] == '6': # 세 수 연속으로 6인지 확인 if count not in S : # 중복 아닌지 확인 S.append(count) # 1씩 더해주기 count += 1 print(S[N-1]) 설마설마 했는데 진짜 됐다 ㅋㅋ 시간 초과 날 줄 알았는데 다른 ..
체스판 다시 칠하기.. 이런 식으로 주어지면 체스판으로 만들기 위해 다시 칠해야하는 정사각형 개수를 각각 다른 경우의 수 전부 구해서 비교하면 되는 문제 경우의 수 각각을 어떻게 표현해야 할 지 몰라서 for문 엄청 썼다가 아닌거같아서 다시 시작,, 결국 for문 4번 써서 성공 import sys N, M = map(int, sys.stdin.readline().split()) B = [] # 여기에 주어진 판 넣기 for i in range(N): B.append(list(sys.stdin.readline().rstrip())) # 리스트 안에 한 줄씩 리스트로 넣음 rec_min = [] # 최소 정사각형 개수 나오는 경우의 수 저장 for i in range(N-7) : # 위부터 for j in..
한수를 판별하는 함수를 만들어야 하는 문제! 99까지는 전부 포함되기 때문에 범위를 나눠서 했다 #한수 판별 함수 def han(num): if num//100 - (num%100)//10 == (num%100)//10 - (num%10): return num N = int(input()) if N < 100 : a = [i+1 for i in range(N)] #99까지는 모두 해당되기 때문에 모두 저장 else : a = [i+1 for i in range(99)] #99까지는 모두 해당되기 때문에 모두 저장 for i in range(100, N+1): #한수 판별 후 저장 if han(i) == i: a.append(i) print(len(a)) 이런 방법도 있었다..!! print(sum(i
처음에는 셀프 넘버에 어떤 규칙이 있을까 싶어서 그걸 구하려고 했는데, 그게 아니라 1~10,000까지의 수 중에서 생성자를 뺀 나머지들을 묶으면 쉬웠다 [1~10000까지의 수] - [1~10000까지 생성자가 있는 수들] = [(1~10000까지의)셀프 넘버들] 이 되는 것! 밑줄 친 부분을 만들기 위해 우선 d(n) 함수를 정의해야 한다. def d(n): return ( n + sum(map(int, str(n)))) sum 과 map 을 이용해 n + n의 각 자리수 리턴 (n + n//10000 + n//1000 ... 이런 식으로 해서 실패했었다 ㅋㅋㅋ) a = [] 라는 빈 리스트를 만들어 결과값을 하나씩 추가 a = [] for i in range(1, 10000): a.append(d(..
1) 테스트 케이스 input 받아서 C에 저장 아래를 C만큼 반복 2) 학생 수 N과 이어서 점수가 나오니 리스트에 저장 후, a[0] 저장 후 삭제 3) 평균 구하기 아래를 학생 수N만큼 반복 4) 점수 중 평균보다 높은 점수가 몇 개 인지 확인 후 y에 저장 (평균보다 높은 점수 받은 학생)/(전체 학생 수) 비율 프린트 import sys C = int(input()) for i in range(C): a = list(map(int, sys.stdin.readline().split())) x = a[0] del a[0] average_s = sum(a)/x y = 0 for j in range(x): if average_s < a[j]: y += 1 print(f'{y/x*100:.3f}%')