줄세우기

 

10431번: 줄세우기

초등학교 선생님 강산이는 아이들을 데리고 단체로 어떤 일을 할 때 불편함이 없도록 새로 반에 배정받은 아이들에게 키 순서대로 번호를 부여한다. 번호를 부여할 땐 키가 가장 작은 아이가 1

www.acmicpc.net

 

내 코드

from sys import stdin

T = int(stdin.readline().strip())

for _ in range(T):
    arr = list(map(int, stdin.readline().strip().split()))
    num = arr[0]
    arr = arr[1:]

    newArr = []
    count = 0

    for a in arr:
        if len(newArr) == 0:
            newArr.append(a)
        else:
            for idx in range(1, len(newArr)+1):
                if newArr[-idx] > a:
                    count += 1

                    if idx == len(newArr):
                        newArr.insert(0, a)
                else:
                    if idx == 1:
                        newArr.append(a)
                        break
                    else:
                        # print(a, idx)
                        newArr = newArr[:-(idx -1)] + [a] + newArr[-(idx - 1):]
                        break
        # print(a, newArr, count)
    print(num, count)
728x90

등수 구하기

 

1205번: 등수 구하기

첫째 줄에 N, 태수의 새로운 점수, 그리고 P가 주어진다. P는 10보다 크거나 같고, 50보다 작거나 같은 정수, N은 0보다 크거나 같고, P보다 작거나 같은 정수이다. 그리고 모든 점수는 2,000,000,000보

www.acmicpc.net

내 코드

from sys import stdin

# N 주어질 리스트 길이
# S 태수 점수
# P 랭킹 순위 수

N, S, P = map(int, stdin.readline().split())
scores = []

# 점수 리스트 세팅
if N > 0:
    scores = list(map(int, stdin.readline().split()))

scores.append(S)
scores.sort(reverse=True)

ranks = []
for idx in range(len(scores)):
    if idx == 0:
        ranks.append(1)
    elif idx != 0 and scores[idx-1] == scores[idx]:
        ranks.append(ranks[-1])
    else:
        ranks.append(len(ranks) + 1)

rank = -1
if len(ranks) <= P:
    index = scores.index(S)
    rank = ranks[index]
else:
    index = scores.index(S)
    rank = ranks[index]

    # 등수가 P와 같을 때 동점자 있는지 확인
    if rank == P and ranks.count(rank) > 1:
        rank = -1

    if rank < P < ranks.count(rank) + len(ranks[:index]):
        rank = -1

    # rank 가 P보다 큰 경우
    if rank > P:
        rank = -1

# print(ranks)
print(rank)
728x90

쿠키의 신체 측정

 

20125번: 쿠키의 신체 측정

쿠키런은 데브시스터즈에서 제작한 모바일 러닝 액션 게임이다. 마녀의 오븐에서 탈출한 쿠키들과 함께 모험을 떠나는 게임으로, 점프와 슬라이드 2가지 버튼만으로 손쉽게 플레이할 수 있는

www.acmicpc.net

 

내 코드

from sys import stdin

N = int(stdin.readline().strip())
head = [-1,-1]
heart = [-1, -1]
result = []
cookies = []

for row in range(N):
    newLine = list(stdin.readline().strip())
    cookies.append(newLine)
    for col in range(len(newLine)):
        # 쿠키 머리 index 저장
        if head[0] == -1 and head[1] == -1 and newLine[col] == '*':
            head[0] = row+1
            head[1] = col+1
            # 머리 기준 바로 아래 심장
            heart[0] = head[0] + 1
            heart[1] = head[1]
            break

# 왼팔 심장 기준 왼쪽
cookie_length = 0
for col in range(0, heart[1]-1):
    if cookies[heart[0]-1][col] == "*":
        cookie_length += 1
result.append(cookie_length)

# 오른팔 심장 기준 오른쪽
cookie_length = 0
for col in range(heart[1], N):
    if cookies[heart[0]-1][col] == "*":
        cookie_length += 1
    else:
        break
result.append(cookie_length)

# 허리 심장 기준 아래
waist_last = [-1, -1]
cookie_length = 0
for row in range(heart[0], N):
    if cookies[row][heart[1]-1] == "*":
        cookie_length += 1
    else:
        waist_last[0] = row-1
        waist_last[1] = heart[1]-1
        break
result.append(cookie_length)


left = 0
right = 0
for row in range(waist_last[0]+1, N):
    # 왼다리 허리 마지막 인덱스 기준 대각선 왼쪽 아래
    # waist_last[0]+1 waist_last[1]-1
    if cookies[row][waist_last[1]-1] == "*":
        left += 1
    # 오른다리 허리 마지막 인덱스 기준 대각선 오른쪽 아래
    # waist_last[0]+1 waist_last[1]+1
    if cookies[row][waist_last[1] + 1] == "*":
        right += 1
result.append(left)
result.append(right)

print(*heart)
print(*result)
728x90

임스와 함께하는 미니게임

 

25757번: 임스와 함께하는 미니게임

첫 번째 줄에는 사람들이 임스와 같이 플레이하기를 신청한 횟수 $N$과 같이 플레이할 게임의 종류가 주어진다. $(1 \le N \le 100\,000)$ 두 번째 줄부터 $N$개의 줄에는 같이 플레이하고자 하는 사람들

www.acmicpc.net

 

 

내 코드

from sys import stdin

N, G = map(str, stdin.readline().split())
user = []

for _ in range(int(N)):
    user.append(stdin.readline().strip())

user = set(user)
if G == "F":
    print(len(user)//2)
elif G == "O":
    print(len(user)//3)
else:
    print(len(user))
728x90

+ Recent posts