본문 바로가기

반응형

코딩

(89)
[Python] 백준 10818 최소, 최대 코드 작성 1 n = int(input()) k = list(map(int, input().split())) print(min(k),max(k)) 코드 작성 2 n = int(input()) k = list(map(int, input().split())) min = k[0] max = k[0] for i in k: if i > max: max = i elif i < min: min = i print(min, max) 코드 풀이 1 k의 리스트(list)를 정수(int)로 통일되게(map), 띄어쓰기로 구분(split)하여 값을 입력받고 min, max함수를 이용하여 프린트한다. 코드 풀이 2 k의 리스트(list)를 정수(int)로 통일되게(map), 띄어쓰기로 구분(split)하여 값을 입력받고 k의 ..
[Python] 10871 X보다 작은 수 코드 작성 a, b = map(int, input().split()) k = list(map(int, input().split())) for i in k: if b>i: print(i, end=' ') 코드 풀이 #1 a,b의 값을 정수(int)로 통일되게(map) 띄어쓰기로 구분(split)하여 입력받는다. 두 번째 줄의 리스트(list)를 입력받고 #2 리스트에 입력된 값을 for문으로 돌린다. b의 값보다 k의 첫번째 값(i = 0)이 클 경우, 그 값을 출력한다. #3 end = ' ' 위 값이 입력되지 않을 경우 1 1 1 이렇게 숫자 하나씩 세로로 출력되는데, end는 print값을 출력한 마지막에 띄어쓰기만 입력하여 가로로 나타나게 된다
[Python] 10807 개수 세기 코드 작성 n = int(input()) k = list(map(int, input().split())) p = int(input()) print(k.count(p)) 코드 풀이 #1 값 입력 우선 입력 값처럼 3개의 값을 입력 받는다. 2번째 줄의 경우 n개의 개수만큼 리스트(list)형의 정수(int)를 통일되게(map), 띄어쓰기(split)로 구분하여 입력한다. 그리고 출력할 때에는 k리스트중에서 p로 입력 된 값을 세어서(count)출력한다.
[Python] 1406 에디터 코드 작성 import sys s1 = list(input()) s2 = [] n = int(input()) for _ in range(n): cmd = list(sys.stdin.readline().split()) if cmd[0]=='P': s1.append(cmd[1]) elif cmd[0]=='L'and s1: #입력값의 첫번째 값이 L이면서, s1이 무언가 있다면 s2.append(s1.pop()) elif cmd[0]=='D'and s2: s1.append(s2.pop()) elif cmd[0]=='B'and s1: s1.pop() print(''.join(s1+list(reversed(s2)))) 코드 풀이 #1 문제 이해 abc의 리스트가 있고 xyz의 리스트 2개가 나누어 있다고 본다. ..
[Python] 백준 1158 요세푸스 문제 코드 작성 n, k = map(int, input().split()) arr = list(range(1,n+1)) answer = [] i = k - 1 for _ in range(n): if len(arr) > i: answer.append(arr.pop(i)) i += k - 1 elif len(arr) i: #배열의 길이가 i보다 큰 경우(i는 인덱스!) ans.append(arr.pop(i)) #arr의 i번째 배열을 빼고, 그 뺀 값을 ans에 다시 추가 i += k - 1 #다시 인덱스(i)를 k만큼 증가하는데 숫자 1개를 앞전에서 뺏으므로 ‘-1’ 추가 elif len(arr) 으로 표기됨 ','.join으로 작성 할 경우 으로 표기됨 ''.join으로 작성할 경우 으로 표기됨
[Python] 백준 10872 팩토리얼 코드 작성 n = int(input()) k =1 if n == 0: print(1) else: for i in range(1,n+1): k = k*i print(k) 코드 풀이 #1 n 이 0인 경우 모든 수를 곱하면 0이 되기 때문에 먼저 if조건으로 빼주었다. 그리고 for문의 경우 i는 0부터 시작하기 때문에 range의 범위를 1부터 n+1로 설정하였다.
[Python] 백준 1789 수들의 합 코드 작성 import math s = int(input()) m = int(math.sqrt(2*s)) while m*m+m > 2*s: m -= 1 print(m) 코드 풀이 #1 서로 다른 n개의 자연수의 합을 구하기 위한 공식은 n(n+1)/2 = s 이다. 따라서 n(n+1) = 2s라고 하고 s가 주어졌을 때 n을 구하는 방법이다. 문제에서 요구하는 것은 n의 최대값이므로, while문 작성시 m*m+m > 2s로 작성하여 m이 2s보다 작아질 때까지 m을 1씩 감소시키며 m의 값을 찾는다. 제곱근(sqrt)함수를 쓰기 위해서 math모듈을 불러오고, 초기 m의 값을 실제 m의 값과 가장 근접한 값을 구하기 위해 sqrt(2s)로 작성하였다.
[Python] 백준 10866 덱 코드 작성 from collections import deque #collection모듈의 deque을 사용한다. import sys d = deque() n = int(input()) for i in range(n): cmd = sys.stdin.readline().split() #명령어(cmd)를 [0]에는 입력어, [1]에는 추가될 자료를 입력 if cmd[0] == "push_front": d.appendleft(cmd[1]) #cmd[1]의 값을 d의 처음에 입력 elif cmd[0] == "push_back": d.append(cmd[1]) elif cmd[0] == "pop_front": if d: #d에 자료가 있을경우(len(d)==0)으로도 표현 print(d[0]) d.popleft(..

반응형