🧐 입력받기

 

🤔 단일 입력 ( a = input() 처럼 사용할 때는 default가 str로 아래와 같이 type을 표시할 수 있다.)

a = int(input())

 

🤔 123456과 같이 공백없이 입력을 list로 받을 때 (a를 list가 아닌 float변수로 받고자 하면 map으로 시작)

num = list(map(int, input())) 

 

🤔 1 2 3 4와 같이 띄어쓰기를 기준으로 입력을 list로 받을 때 (a를 list가 아닌 float변수로 받고자 하면 map으로 시작)

- 공백을 기준으로 입력받은 애들을 잘라서 int로 만든 뒤 (map이 반복되는 애들을 특정 자료형으로 바꿔준다.)

- 이를 list로 감싸줘서 int형의 반복적인 것들이 리스트화 되는 것이다.

a = list(map(float, input().split()))

 

🤔 위와 달리 enter를 기준으로 아래처럼 입력받을 때

1

2

3

4

a = [int(input()) for i in range(10)]

 

🤔 num이라는 리스트에 TestCase라는 숫자만큼 리스트 공간을 생성 (2차원)

1 2

3 4

5 6

TestCase = int(input())
num = [list(map(int, input().split())) for _ in range(TestCase)]

# 위의 코드는 앞으로 다음과 같이 사용
num = [list(map(int, input().split())) for _ in range(int(input()))]
이를 다른 언어로 생각해보면
num [ TestCase ][ list(map(int, input().split())) ]
위와 같은 느낌이라 생각하면 된다.
 

 

 

 

🧐 백준 1546에서 사용한 함수

🤫 해결의 실마리 

🤔 최대값, 최소값을 반환하는 함수 max, min 
1. 인자 1개일 때       =>    max(list_name)
2. 인자 2개일 때       =>    max(arg1, arg2)    # arg에서 가장 큰 값을 출력, list라면 list 자체를 출력
3. key나 lambda를 이용 =>   max(num, key = num.count)  # 최빈값을 구하는 식

그렇다면 2번째로 큰 값이나 작은 값은 어떤 방식으로 구하면 될까? 
1. 정렬을 해준다. => sort 사용
2. sort 후 1번 인덱스 값을 출력해주면 된다.

num = [int(input()) for _ in range(9)]
num.sort(reverse=True)
print(num[1])


🤔 
뒤집어 주는 함수 reverse

for i in reversed(str_list):
    if i == '0':
        cnt += 1
    else:
        break

위의 코드처럼 reversed를 for문에 넣어 기존 원소를 반대방향에서 접근할 수 있다.


🤔 
리스트에 새로운 요소를 추가하는 함수 append, insert

list_name.append(x)는 list의 맨 끝에 객체 x를 추가한다.
list_name.insert(idx, x)는 list의 idx에 객체 x를 추가한다.



🤔 
특정 값의 길이를 구하는 함수 len

len(list_name) 는 list_name의 길이를,
len(string) 은 string의 길이를 구할 수 있다

 



🤫  solution_1546

N = int(input())
score = list(map(float, input().split()))
M = max(score)
new_score = []
for i in range(N):
    new_score.append(score[i]/M*100)

new_mean = sum(new_score) / len(new_score)
print(new_mean)


🤫  solution_1676

def fac(n):
    if n <= 1:
        return 1
    else:
        return n * fac(n - 1)

N = int(input())
n = fac(N)

# 숫자를 리스트에 한자리씩 넣기 (숫자->문자열)
str_num = str(n)
str_list = list(str_num)

cnt = 0
for i in reversed(str_list):
    if i == '0':
        cnt += 1
    else:
        break
print(cnt)

 

 

🧐 백준 2562 , 10797사용함수

🤫 해결의 실마리 

🤔 리스트에서 조건에 맞는 인덱스를 찾는 함수   ls.index(조건)
ls = []
ls.index(max(ls))


🤔
 리스트에서 조건에 맞는 개수를 찾는 함수  ls.count(조건)
num.count(day)



🤔
 리스트에 특정 값이 존재하는지 확인하는 법   if a in ls

if item in list:
    print('리스트에 값이 있습니다.')
else:
    print('리스트에 값이 없습니다.')

🤔 리스트에 특정 값이 없는지 확인하는 법   if a not in ls

if item not in list:
    print('리스트에 값이 없습니다.')
else:
    print('리스트에 값이 있습니다.')



🤫  solution_2562

num = [int(input()) for _ in range(9)]
print(max(num), num.index(max(num))+1, sep = " \n")

 

🤫  solution_10797

day = int(input())
num = list(map(int, input().split()))

if day in num:
    print(num.count(day))
else:
    print(0)

 

🧐 백준 2506 풀이 및 사용함수

🤫 해결의 실마리 

🤔 리스트에 저장된 value 기준의 for문을 이용하자! 
for i in lst:
    if (i == 1):
        . . .​
for i in range(len(list_name))은 list의 길이만큼 for문을 순회하는 것으로 i의 값이 0, 1, 2, 3, . . . , list길이 만큼 나오지만

for i in lst: 의 경우 만약 lst = [10, 30, 345, 123]이라면 4회 돌긴 하지만 i의 값이 10일때, 30일때로 돌게 된다.
즉, i에 리스트의 값이 되입되면서 list 원소를 이용한 접근할 수 있다.


🤫  solution_2506

num = int(input())
ox = list(map(int, input().split()))

sum, cnt = 0, 0

for i in ox:
    if (i == 1):
        cnt += 1
        sum += cnt
    else:
        cnt = 0
print(sum)

 

 

🧐 백준 2576, 9085 풀이 

🤫  solution_2576

num = [int(input()) for _ in range(7)]

sum, ans = 0, 0
odd_list = []

for i in range(7):
    odd = num[i] % 2 != 0
    if odd:
        odd_list.append(num[i])
        sum += num[i]

if len(odd_list) == 0:
    print(-1)
else:
    print(sum, min(odd_list), sep = "\n")


🤫  solution_9085

T = int(input())
sum_T = []
for i in range(T):
    N = int(input())
    sum_T.append(sum(list(map(int, input().split()))))
    print(sum_T[i])

 

 

 

+ Recent posts