Computer Science/알고리즘

[코드트리 챌린지] 릴레이 문제 복습

hyunjin 2023. 10. 12. 09:22

실력진단

점수가 많이 올랐어요~~!!!

학습내용

릴레이 문제 풀면서 학습했습니다

  • 문자 삼각형 출력하기 2

https://www.codetree.ai/training-field/home/relay/problems/print-char-triangle-2/description

 

n = int(input())
num = 65
arr = [[' ' for _ in range(n)] for _ in range (n)]
for y in range((n//2), -1, -1):
    for x in range(y, n-y):
        arr[x][y] = chr(num)
        num +=1
        if num>90:
            num = 65

for i in range(n):            # 세로 크기
    for j in range(n):     # 가로 크기
        print(arr[i][j], end=' ')
    print()
  • 수 전부 이어붙이기
import math
n=int(input())
arr=list(input().split())
string="".join(arr)
string=list(string)
for i in range(math.ceil(len(string)/5)):
    print(''.join(string[i*5:(i+1)*5]))
  • 지뢰찾기
n=int(input())
arr=[list(input()) for _ in range(n)]
arr_player=[list(input()) for _ in range(n)]
ans=[[0 for _ in range(n)] for _ in range(n)]
dx=[-1,-1,-1,0,0,1,1,1]
dy=[-1,0,1,-1,1,-1,0,1]

def in_range(x, y):
    return 0 <= x and x < n and 0 <= y and y < n
for i in range(n):
    for j in range(n):
        if arr_player[i][j]=='x':
            cnt=0
            for k in range(8):
                nx=i+dx[k]
                ny=j+dy[k]
                if in_range(nx,ny) and arr[nx][ny]=='*':
                    cnt+=1
            ans[i][j]=cnt

        else:
            ans[i][j]='.'

for i in range(n):
    for j in range(n):
        print(ans[i][j],end='')
    print()
  • 거듭제곱을 출력하는 함수
a,n=map(int,input().split())
def power(a, n):
    if n == 1:
        return a
    
    return power(a, n-1) * a

print(power(a,n))
  • 알파벳 x2
#처음 풀이
stack=[]
input_arr=list(input())
for alpha in input_arr:
    if len(stack)>0 and stack[-1]==alpha:
        stack.pop()
    else:
        stack.append(alpha)   
cnt=0
ans=0
for i in range(1,len(stack)//2):
    if ord(stack[-i])<ord(stack[-(i+1)]):
        cnt+=1

ans=len(list(set(stack)))-cnt-1
if ans==-1:
    ans=0

print(ans)