Algorithm/BaekJoon (Python) 15

[파이썬][백준][10818번] 최소, 최대

- 문제 - 풀이 방법 1 N = int(input()) data = list(map(int, input().split())) mini = data[0] max = data[0] for i in range(N): if mini > data[i]: mini = data[i] if max < data[i]: max = data[i] print(mini, max) 방법 1은 일반적인 다른 언어에서 사용하는 알고리즘을 이용해서 푸는 것이다. 방법 2 N = int(input()) data = list(map(int, input().split())) print(min(data), max(data)) 방법 2는 파이썬 내장 함수인 min()과 max()를 사용하는 것이다.

[파이썬][백준][10871번] X보다 작은 수

- 문제 - 풀이 N, X = map(int, input().split()) data = list(map(int, input().split())) for i in range(N): num = data.pop(0) if X > num: print(num) - 고민 코드를 짜다가 오류가 난 부분이 있다. 아무 생각 없이 num = data.pop(i) 로 코드를 짰었는데 여기서 문제가 발생한 것이다. pop함수는 리스트의 젤 앞에 있는 요소를 내보내고, 이후 뒤의 요소들이 앞으로 당겨진다. 즉 1, 2, 3이 리스트에 들어있었고 pop함수를 한번 호출하면 1이 반환되고 뒤에 있던 2, 3이 앞으로 당겨지는 것이다. 따라서 pop은 위의 문제에서는 항상 0번째에 위치한 요소만 반환시켜주면 된다. 즉 pop(0..

[파이썬][백준][2439번] 별 찍기 - 2

- 문제 - 풀이 방법 1 N = int(input()) for i in range(1, N+1): print(" " * (N - i) + "*" * i) 방법 2보다 더 간단한 코드이다. 파이썬에서는 문자열끼리 + 연산자를 쓸 수 있기에 이렇게 코드를 짜면 간단하다. 방법 2 N = int(input()) for i in range(1, N+1): print(" " * (N - i), "*" * i, sep="") print()를 이용할 때 쉼표를 이용해서 출력을 하면, 쉼표 앞 뒤의 것들이 띄어쓰기가 한번 돼서 나온다. 그래서 sep=""을 통해서 공백이 없게 만들어주면 된다.

[파이썬][백준][10950번] A+B - 3

- 문제 - 풀이 T = int(input()) for _ in range(T): A, B = map(int, input().split()) print(A+B) for문에서 변수를 따로 지정하지 않고 range만큼 반복하기 위해 _ 연산자를 사용한다. - 고민 이 문제 코드는 쉽기 때문에 따로 포스팅하지 않으려고 했다. 근데 백준 채점 서버가 어떻게 돌아가는지 몰라서 아래와 같이 배열을 이용해서 한번에 입력받고 한번에 출력하는 프로그램을 만드려고 해서 이 부분을 짚고 넘어가려고 포스팅을 해본다. T = int(input()) a = list() for i in range(T): A, B = map(int, input().split()) a.append(A + B) for j in range(T): pri..

[파이썬][백준][2753번] 윤년

- 문제 - 풀이 year = int(input()) if ((year % 4 == 0) and (year % 100 != 0)) or (year % 400 == 0): print("1") else: print("0") 윤년이 되기 위한 조건은 3가지이다. 1. 4의 배수 2. 4의 배수이지만, 100의 배수가 아닌 것 3. 4의 배수이지만, 400의 배수는 윤년 if 문의 조건에서 이것을 만족하기 위해서는 글자 그대로 식을 작성하면 된다. 1 and 2 or 3 이것이 곧 답

[파이썬][백준][10869번] 사칙연산

-문제 -풀이 A, B = map(int, input().split()) print(A+B) print(A-B) print(A*B) print(int(A/B)) print(A%B) 처음에 이 문제를 틀렸었는데, 4번째 줄 나눗셈( / )을 할때 정수만 출력이 되어야 한다는 조건을 간과해서 틀렸다. A / B 를 int로 묶어주지 않으면 2.333~ 이렇게 출력되기 때문에 문제를 틀리게 된다. 따라서 나눗셈 연산을 한 다음 정수로 만들어 줬다. 그리고 파이썬에서는 줄마다 print를 써주면 자동으로 줄이 띄어진다.

[파이썬][백준][1001번] A-B

- 문제 - 풀이 방법 1, input() 이용 A, B = input().split() A = int(A) B = int(B) print(A-B) input()으로 입력을 받고, split()을 사용해 공백을 기준으로 입력받은 문자열을 분리한다. 분리된 것은 A와 B에 각각 저장된다. A와 B에 저장된 것은 타입이 문자열이기 때문에 int()를 이용해서 정수 타입으로 바꿔준다. 그런 다음 A-B를 출력. 가장 기본적인 형태의 정수 뺄셈 방법 방법 2, map 이용 A, B = map(int, input().split()) print(A-B) map 함수의 기본형 map(함수, 반복 가능한 자료형) * 반복 가능한 자료형 : 리스트, 튜플 ··· 파이썬에서 map 함수는 반복 가능한 자료형에 들어있는 요..