[백준_python] format, map, split || 2739, 2920, 8958

2021. 1. 4. 23:08·🎯PS

FORMAT

format

format 포맷팅 : 중괄호 { }를 이용하는 방법
ex) tmp = "{ : d }".format(100)
print("int : {0}, string : {1}".format(100, "str") 처럼 변수의 타입과 상관없다

%

% 포맷팅 : %d, %s, %f 등과 함께 %를 이용하는 방법
ex) print("int : %d, string : %s" %(100, "str"))
 

Map

input()은 문자열로 입력을 받기 때문에 int(input())처럼 정수로 변환을 해주기도 하는데, 
split()함수( : 일정 기준으로 나누어 리스트 형태로 변환)와 함께 이용할 때, int(input().split()) (X)
map함수를 이용해주며 split의 결과를 모두 해당 타입으로 변환할 수 있다.
map(int, input( ).split( ))


1. 구구단

www.acmicpc.net/problem/2739

2739번: 구구단

N을 입력받은 뒤, 구구단 N단을 출력하는 프로그램을 작성하시오. 출력 형식에 맞춰서 출력하면 된다.

www.acmicpc.net

a = int(input())

for i in range(1, 10):
    print("{:d} * {:d} = {:d}".format(a, i, a*i))

range(1, 10)을 이용하여 1 ~ 9까지 구구단을 출력하도록 하였다.
출력 시, format을 이용하였다.
print("%d * %d = %d" %(a, i, a*i)) 로 해주어도 된다.
 

2. 음계

www.acmicpc.net/problem/2920

2920번: 음계

다장조는 c d e f g a b C, 총 8개 음으로 이루어져있다. 이 문제에서 8개 음은 다음과 같이 숫자로 바꾸어 표현한다. c는 1로, d는 2로, ..., C를 8로 바꾼다. 1부터 8까지 차례대로 연주한다면 ascending, 8

www.acmicpc.net

 

asc = [1, 2, 3, 4, 5, 6, 7, 8]
des = [8, 7, 6, 5, 4, 3, 2, 1]

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

count1 = count2 = 0
for j in range(8):
    if asc[j] == num[j]:
        count1 += 1
    elif des[j] == num[j]:
        count2 += 1
    
if count1 == 8:
    print("ascending")
elif count2 == 8:
    print("descending")
else:
    print("mixed")

TypeError: cannot unpack non-iterable int object
: count1, count2 = 0이라고 해주고 나온 오류. 각자 따로 선언해주거나 위에 처럼 ","가 아닌 "="로 해주기.
 
list(map(int, input( ).split( ))

  1. 공백을 기준으로 문자열 형태의 입력을 받고, 리스트 형식으로 변환 : input( ).split( )
  2. 리스트 요소 하나하나에 접근하여 int로 변환 : map(int, ~)
  3. 리스트 형식으로 변환 : list( )

3. OX퀴즈

www.acmicpc.net/problem/8958

8958번: OX퀴즈

"OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수

www.acmicpc.net

a = input() #테스트 케이스의 개수


for i in range(int(a)): 
    test = list(input()) #OOXO와 같은 문자열을 입력받아 ['O','O','X','O']형태로 변환
    score = 0
    result = 0
    for j in test:
        if j == "O":
            score += 1
            result += score
        elif j == "X":
            score = 0
    print(result)        

 
 

반응형
'🎯PS' 카테고리의 다른 글
  • [백준_python] while문, try-except, ord( ), chr( ) || 10951, 10952, 11654, 11720
  • [백준_python]min, max, print(sep, end, escape...) || 10818, 10869, 10950
  • [백준_python] if문, for문_range, input(), split() index||2557, 2562, 2675
  • [백준_java]키 입력, 출력, if, for(1008, 1330, 2438) +)python
dmaolon
dmaolon
프로그래밍을 공부한 내용을 기록하는 공간입니다.
  • dmaolon
    기록 남기기
    dmaolon
  • 전체
    오늘
    어제
    • ALL (260)
      • ➰ Series (5)
      • 🎯PS (168)
        • Algorithm (15)
      • ☕ Java (11)
      • 🍀 Spring Boot (29)
      • 💬 Database (9)
      • 🐣 Computer Science (14)
      • 👍 Daily (4)
      • 🎁ReactJS (4)
  • 인기 글

  • 최근 댓글

  • 최근 글

  • 태그

    프로그래머스
    BFS
    백준
    프로그래밍
    코딩
    Spring
    자바
    알고리즘
    파이썬
    dfs
  • hELLO· Designed By정상우.v4.10.1
dmaolon
[백준_python] format, map, split || 2739, 2920, 8958
상단으로

티스토리툴바