백준 문제 푼거 정리 - 1차원 배열 사용하기
1152번 단어의 개수
-> 인풋을 입력 받아 단어의 개수를 센다.
split
a.split()처럼 괄호 안에 아무런 값도 넣어주지 않으면 공백(스페이스, 탭, 엔터 등을) 기준으로 문자열을 나누어준다.
2577번 숫자의 개수
세 개의 자연수를 곱해 나온 수가 0부터 9까지 각각의 숫자가 몇번 쓰였는지를 출력 -> 리스트에 담아서 다 갯수를 세는 방법 외에 더 좋은 방법이 없을까? python에는 count라는 함수가 있다.
count
count(x)는 리스트 내에 x가 몇 개 있는지 조사하여 그 개수를 돌려주는 함수이다. 문자열에서도 count를 쓸 수 있다. a.count('b')
은 문자열 중 문자 b의 개수를 반환한다.
참고 코드
result = str(A*B*C)
for i in range(10):
print(result.count(str(i)))
8958번 OX퀴즈
O와 X가 주어졌을 때, 문제를 맞은 경우, 그 문제까지 연속된 O의 개수를 센다.
-> 연속된 0의 개수를 어떻게 셀까. 그냥 len 해서 포문 돌려서 하자! -> 너무 지저분하다. 맞긴 맞았다.
for i in range(N):
parts = rl().rstrip().split("X")
count = 0
for part in parts:
if(len(part) == 1):
count += 1
else:
for i in range(len(part)):
count += i+1
print(count)
for i in range(N):
parts = rl().rstrip().split("X")
count = 0
for part in parts:
if(len(part) == 1):
count += 1
else:
for i in range(1, len(part)+1):
count += i
print(count)
이것도 사실 똑같은 거다.
2920번 음계
연주한 순서가 주어졌을 때, ascending인지 desending인지 mixed인지 판별하여 출력
import sys
def rl(): return sys.stdin.readline()
N = rl().rstrip().split(" ")
if(N == sorted(N)):
print("ascending")
elif(N == sorted(N, reverse=True)):
print("descending")
else:
print("mixed")
참고
※ 리스트에 담겨 있는 문자형을 숫자로 변환할 때
N = rl().rstrip().split(" ")
print(map(int, N))
이런 식으로 작성을 하니
<map object at 0x101c4cef0>
이런 식으로 출력이 되었다.
구글링을 해보니
print(list(F_temps))
이렇게 하니까 정상적으로 출력이 되었다.
10039번 평균 점수
- 5명의 점수 받아서 리스트에 저장한다.
- 40점 미만의 수는 40점 으로 바꾼다.
참고자료
점프 투 파이썬 : https://wikidocs.net/14
파이썬 1152번 단어의 개수 https://tastydarr.tistory.com/entry/%ED%8C%8C%EC%9D%B4%EC%8D%AC%EB%B0%B1%EC%A4%80-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-1152%EB%B2%88-%EB%8B%A8%EC%96%B4%EC%9D%98-%EA%B0%9C%EC%88%98
파이썬 2577 숫자의 개수 https://oneshottenkill.tistory.com/16
파이썬 8958 OX 퀴즈 https://oneshottenkill.tistory.com/17?category=794783
파이썬 2920번 음계
https://oneshottenkill.tistory.com/19
map 관련 참고자료 https://wayhome25.github.io/cs/2017/04/03/cs-03/