개발자 쿠키

[백준(BOJ)] 백준 단계별로 풀어보기 - 1차원 배열(10818, 2562, 2577, 3052, 1546) 본문

algorithm

[백준(BOJ)] 백준 단계별로 풀어보기 - 1차원 배열(10818, 2562, 2577, 3052, 1546)

개발자 쿠키 2022. 8. 1. 12:25
✔  백준 단계별로 풀어보기 - 1차원 배열

 

 

  • 1단계, 10818번 2022.08.01
  • 2단계, 2562번   2022.08.01
  • 3단계, 2577번   2022.08.01
  • 4단계, 3052번   2022.08.01
  • 5단계, 1546번   2022.
  • 6단계, 8985번   2022.
  • 7단계  4344번   2022.

✔1단계, 1차원 배열 10818번 (브론즈3)

https://www.acmicpc.net/problem/10818

 

10818번: 최소, 최대

첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다.

www.acmicpc.net

코드

# [백준 10818번] - 최소, 최대 - (브론즈3, 1차원배열)
import sys
input = sys.stdin.readline

N = int(input()) # 정수의 개수
k = list(map(int, input().split())) # N개의 정수를 공백입력

print(min(k), max(k))

문제풀이

list(map(int, input().split()) : N개의 정수가 공백으로 입력
min() : 최소값
max() : 최대값

2단계, 1차원 배열 2562번 (브론즈3)

https://www.acmicpc.net/problem/2562

 

2562번: 최댓값

9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오. 예를 들어, 서로 다른 9개의 자연수 3, 29, 38, 12, 57, 74, 40, 85, 61 이 주어

www.acmicpc.net

코드

# [백준 2562번] - 최대값 - (브론즈3, 1차원배열)
import sys
input = sys.stdin.readline

a = []

for i in range(9):
    N = int(input())
    a.append(N)

print(max(a))
print(a.index(max(a)) + 1)

문제풀이

a.append(N) : a리스트에 N추가
index() : 배열에서 값의 위치를 찾아주는 함수
a[0] 부터 시작하기때문에 +1을 해준다

3단계, 1차원 배열  2577번 숫자의 개수 (브론즈2)

https://www.acmicpc.net/problem/2577

 

2577번: 숫자의 개수

첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어진다. A, B, C는 모두 100보다 크거나 같고, 1,000보다 작은 자연수이다.

www.acmicpc.net

코드

# [백준 2577번] - 숫자의 개수 - (브론즈2, 1차원배열)
import sys
input = sys.stdin.readline

a = int(input())
b = int(input())
c = int(input())
result = list(str(a * b * c))

for i in range(10):
    print(result.count(str(i)))

문제풀이

list의 count함수 : 정수값을 리턴, 주어진 리스트에서 특정한 원소가 몇 번 등장하는지 셈하여 그 결과를 출력해준다

4단계, 1차원 배열  3052번 나머지(브론즈2)

https://www.acmicpc.net/problem/3052

 

3052번: 나머지

각 수를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1이다. 서로 다른 값은 6개가 있다.

www.acmicpc.net

코드

# [백준 2577번] - 숫자의 개수 - (브론즈2, 1차원배열)
import sys
input = sys.stdin.readline

arr = []

for i in range(10):
    n = int(input())
    arr.append(n % 42)
    
arr = set(arr)
print(len(arr))

문제풀이

10개의 숫자를 입력받아 42로 나눈 나머지 값은 arr 리스트에서 넣는다
set() : 중복된 값을 제거해준 뒤 리스트에 포함되어있는 값의 개수 출력