알고리즘-python
[TC0403] [구현] 왕실의 나이트
🚩 문제 설명 행복 왕국의 왕실 정원은 체스판과 같은 8 x 8 좌표 평면이다. 왕실 정원의 특정한 한 칸에 나이트가 서 있다. 나이트는 매우 충성스러운 신하로서 매일 무술을 연마한다. 나이트는 말을 타고 있기 때문에 이동을 할 때는 L자 형태로만 이동할 수 있으며 정원 밖으로는 나갈 수 없다. 나이트는 특정한 위치에서 다음과 같은 2가지 경우로 이동할 수 있다. 1. 수평으로 두 칸 이동한 뒤에 수직으로 한 칸 이동하기 2. 수직으로 두 칸 이동한 뒤에 수평으로 한 칸 이동하기 이처럼 8 x 8 좌표 평면상에서 나이트의 위치가 주어졌을 때 나이트가 이동할 수 있는 경우의 수를 출력하는 프로그램을 작성하시오. 이때 왕실의 정원에서 행 위치를 표현할 때는 1부터 8로 표현하며, 열 위치를 표현할 때는 a부..
[PG42888] 오픈채팅방
https://programmers.co.kr/learn/courses/30/lessons/42888 코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr 🚩 문제 설명 ◾ 오픈채팅방의 사용자 로그를 찍는 문제 ◾ 명령어 Enter: 오픈채팅방 입장 Change: 오픈채팅방 닉네임 변경 Leave: 오픈채팅방 퇴장 ◾ 닉네임 변경 방법 2가지 채팅방을 나간 후 ➡ 새로운 닉네임으로 다시 입장 채팅방에서 닉네임 변경 ◾ 명령어에 따라서 메세지가 출력이 되고 해당 메세지들을 유저 닉네임에 맞게 출력해야한다. ◾ 명령어..
[TC0402] [구현] 시각
✅ 이것이 코딩 테스트다 - 시각 n = int(input()) ans = 0 for hour in range(n+1): for min in range(60): for sec in range(60): if "3" in str(hour) + str(min) + str(sec): ans += 1 print(ans) ◾ Implementation ◾ 00시 00분 00초 ~ N시 59분 59초 중에서 ( 0
[TC0302] [그리디] 큰 수의 법칙
✅ 이것이 코딩 테스트다 - 큰 수의 법칙 # N M K 입력 N, M, K = map(int, input().split()) # 수열 입력 arr = list(map(int, input().split())) # 제일 큰 수, 그 다음 수 구하기 arr_sorted = sorted(arr) n1 = arr_sorted[-1] # first n2 = arr_sorted[-2] # second 라고 변수명 지었어도 좋았을듯 # 카운트 cnt = M // (K + 1) remain = M % (K + 1) if (M % 2 == 0): # 짝수라면 ans = ((n1 * K) + n2) * cnt print(ans) else: # 홀수라면 ans = ((n1 * K) + n2) * cnt + (n1 * rem..
[TC0301] [그리디] 거스름돈
✅ 이것이 코딩 테스트다 - 거스름돈 N = int(input()) # N : 손님에게 거슬러줘야할 돈 print(N) coins = [500, 100, 50, 10] # 내가 가지고 있는 동전 배열 count = 0 # 최소 동전의 개수 for coin in coins: count += N // coin N %= coin print(count) ◾ Greedy ◾ 내가 가지고 있는 동전 배열을 우선 선언 ◾ 해당 배열을 루프한다. ◾ 해당 동전으로 나눈 나머지 값들을 더하고 return 한다.
[TC0401] [구현] 상하좌우
✅ 이것이 코딩 테스트다 - 상하좌우 n = int(input()) # 사각형의 크기 maps = [i for i in map(str, input().split())] # 여행자 계획 loc = { 'L': [0, -1], 'R': [0, 1], 'U': [-1, 0], 'D': [1, 0] } x, y = 1, 1 # 시작 좌표 for j in maps: if j == 'L': if y == 1: y += 0 else: y += loc['L'][1] x += loc['L'][0] elif j == 'R': if y == n: y += 0 else: y += loc['R'][1] x += loc['R'][0] elif j == 'U': if x == 1: x += 0 else: x += loc['U'][..