# 9093 단어 뒤집기 (브론즈 1)

tc = int(input())
for _ in range(tc):
    result = ""
    sentence = list(input().split())
    for i in range(len(sentence)):
        for j in range(len(sentence[i]),0,-1):
            result+=sentence[i][j-1]
        result+=" "
    print(result)

 

# 17413 단어 뒤집기 2 (실버 3)

# point. 조건문 사용하기
# [::-1] 처음부터 끝까지 -1칸 간격으로(역순으로)

s = input()
tmp, result, flag = "", "", False

for i in s:
    if i == '<': # 태크 진입 시 true
        flag = True
        result += tmp[::-1] + "<" # 지금까지 tmp에 저장한 문자열 역순 출력
        tmp = "" # 비워줌
    elif i == '>': # 태그 벗어나면 false
        flag = False 
        result += ">"
    elif i == " ": 
        if flag: # 공백인데 태그 속이면 그냥 더해줌
            result +=" "
        else: # 공백인데 태그 밖이면 그 전까지 역순으로 출력
            result += tmp[::-1] + " "
            tmp = "" #비워줌
    else: # 일분 문자열
        if flag: # 태그 안이면 바로 결과에 더해줌
            result += i
        else: # 태그 밖이면 tmp에 넣고 나중에 역순 출력
            tmp += i
result += tmp[::-1] # 마지막 " " 다음에 나온 문자열 더해줌
print(result)

 

# 16956 늑대와 양 (실버 5) -> 방향벡터 사용해서 풀기

※ 울타리의 최소 개수를 구하는 것이 아니기 때문에 늑대의 상하좌우에 양이 없는지만 확인하면 된다.

R,C = map(int, input().split())
M = [list(input()) for i in range(R)]

dx, dy = [0,1, 0, -1], [1,0,-1,0]
ck = False # 양 찾기

for i in range(R):
    for j in range(C):
        if M[i][j] == "W":
            for w in range(4):
                ii, jj = i+dx[w], j+dy[w]
                if ii<0 or ii == R or jj<0 or jj==C: #에외처리
                    continue
                if M[ii][jj] == "S":
                    ck = True

if ck:
    print(0)
else:
    print(1)
    for i in range(R):
        for j in range(C):
            if M[i][j] not in 'SW':
                M[i][j] = "D"
    for i in M:
        print(''.join(i))

 

단계별로 풀어보기 - 1차원 배열

# 2577 숫자의 개수 (브론즈 2)

A = int(input())
B = int(input())
C = int(input())

num_count = [0,0,0,0,0,0,0,0,0,0]
result = str(A*B*C)
for i in range(len(result)):
    num_count[int(result[i])] +=1

for i in range(len(num_count)):
    print(num_count[i])

 

# 3052 나머지 (브론즈 2)

num_list = []
for i in range(10):
    n = int(input())
    num_list.append(n%42)

print(len(set(num_list)))

 

# 1546 평균 (브론즈 1)

n = int(input())
score = list(map(int, input().split()))
M = max(score)
result = 0
for i in range(n):
    score[i] = score[i]/M*100
    result += score[i]

print(result/n)

 

# 8958 OX퀴즈 (브론즈 2)

tc = int(input())
for i in range(tc):
    ox = input()
    result = 0
    score_plus = 0
    for i in range(len(ox)):
        if ox[i] == 'X': # X가 나오면 점수를 0로 초기화
            score_plus = 0
        else: # o이 연속으로 나오면 +1 추가해서 점수에 반영
            score_plus+=1
            result += score_plus
    print(result)

 

# 4344 평균은 넘겠지 (브론즈 1)

c = int(input())
for i in range(c):
    n_socre = list(map(int, input().split()))
    cnt = 0
    average = sum(n_socre[1:])/n_socre[0]
    for score in n_socre[1:]:
        if average < score:
            cnt+=1
    rate = cnt/n_socre[0]*100
    print(str("%.3f" % round(rate, 3)) + "%")

    # print("{0}%".format(round(rate, 3)))
    # 첫번째 예제가 40.0%로 출력됨 0퍼센트로 떨어지더라도 무조건 소수점 3번째까지 표기하기 위해서 %.3f를 사용해야한다.

 

반응형

'알고리즘 > baekjoon' 카테고리의 다른 글

20210115_코테공부  (0) 2021.01.14
20210114_코테공부  (0) 2021.01.14
20210113_코테공부  (0) 2021.01.13
20210112_코테공부  (0) 2021.01.12
20210111_코테공부  (0) 2021.01.11

+ Recent posts