エンコーディングテストの実装:シミュレーションと完全なナビゲーション
これは私がナドンビンで聞いた内容に基づいて勉強した投稿です.
✔実現とは何ですか?
シリーズコマンドに従ってオブジェクトを移動することから、シミュレーションタイプに分けることもできます. まず移動計画書の文字を実際のx,yが移動できる数字に変換する. for文を用いて,計画書順にx,y移動を許可する. ✔問題2:視点
は、可能な限り全ての数をチェックする探索方法であり、この点からも完全探索タイプに分けることができる. すべての時刻を1つずつ印刷し、対応する時刻が現れたときにcountを上げます.✔問題3:王室の夜
✔実現とは何ですか?
実装は,頭の中のアルゴリズムを実際のコードに変換する過程である.したがって,コンピュータが実行できる作業を実現することは必須のプロセスである.
アルゴリズムでは,実装タイプの問題とは,解答を容易に考えられるがソースコードに変換することが困難な問題を指す.
✔問題1:上下左右
AはN X Nサイズの正方形空間に立っている.そしてこの空間は1×1の大きさの正方形に分けられる.一番左上の座標は(1,1)、一番右下の座標は(N,N)です.始点座標は常に(1,1)であり、Aは上、下、左、右方向に移動することができる.(1<=N<=100,1<=移動回数<=100)
移動計画書にはL,R,U,Dの文字が繰り返し書かれています.
L:左に1マス移動
R:1マス右に移動
U:1つ上へ移動
D:1マス下に移動
次はN=5の地図と計画書です.
👉 トラブルシューティングプロセス
AはN X Nサイズの正方形空間に立っている.そしてこの空間は1×1の大きさの正方形に分けられる.一番左上の座標は(1,1)、一番右下の座標は(N,N)です.始点座標は常に(1,1)であり、Aは上、下、左、右方向に移動することができる.(1<=N<=100,1<=移動回数<=100)
移動計画書にはL,R,U,Dの文字が繰り返し書かれています.
L:左に1マス移動
R:1マス右に移動
U:1つ上へ移動
D:1マス下に移動
次はN=5の地図と計画書です.
👉 トラブルシューティングプロセス
# N 입력받기
n = int(input())
x, y = 1, 1 #현재위치
# plan 입력받기
plans = input().split()
# L, R, U, D에 따른 이동 방향
dx = [0, 0, -1, 1] # x축 direction
dy = [-1, 1, 0, 0] # y축 direction
move_types = ['L', 'R', 'U', 'D']
# 이동 계획을 하나씩 확인
for plan in plans:
# 이동 후 좌표 구하기
for i in range(len(move_types)):
if plan == move_types[i]:
nx = x + dx[i]
ny = y + dy[i]
# 공간을 벗어나는 경우 무시
if nx < 1 or ny < 1 or nx > n or ny > n:
continue
# 이동 수행
x, y = nx, ny
print(x, y)
✔問題2:視点
整数Nを入力すると、00時00分00秒からN時59分59秒までの全時刻のうち、1つでも3が含まれている全ての場合の個数を求める.
👉 トラブルシューティングプロセス
# N를 입력받기(hour에 해당함)
hour = int(input())
for i in range (hour+1): # 시
for j in range(60): # 분
for k in range(60): # 초
# 3이 시각안에 포함되어있다면
if '3' in str(i) + str(j) + str(k):
count += 1
print(count)
✔問題3:王室の夜
8×8座標平面では、格子はL字形でしか移動できず、座標平面を超えてはならない.
特定の場所では、次の2つのケースに移動できます.(L字型)
1.2つのセルを水平に移動し、1つのセルを垂直に移動
2.垂直に2つのグリッドを移動し、水平に1つのグリッドを移動
8 X 8座標平面上にあるノードの位置が指定されている場合、そのノードが移動可能な数が出力される.
👉 トラブルシューティングプロセス
ナイトの位置では,8種類の移動方向のうち可能な移動方向数を求める.night = input()
# 행열과 xy는 반대
# 나이트의 행
night_row = int(night[1])
# 나이트의 열
# 열은 a가 시작점이기에 a로 부터 얼마나 떨어져있는지 계산해야함
night_column = int(ord(night[0])) - int(ord('a')) + 1
#나이트가 이동할 수 있는 방향 8개
steps = [(2,1),(1,2),(2,-1),(-1,2),(-2,1),(1,-2),(-2,-1),(-1,-2)]
count = 0
for step in steps:
# 이동하고자 하는 위치 확인
next_row = row + step[0]
next_column = column + step[1]
# 해당 위치로 이동이 가능하다면 카운트 증가
if next_row >= 1 and next_row <= 8 and next_column >= 1 and next_column <= 8:
count += 1
print(count)
✔問題4:文字列の並べ替え
入力した文字列が大文字と数字(0~9)のみで構成されている場合は、すべての文字列を昇順に並べて出力し、すべての数字に値を加算します.
例)K 1 KA 5 CB 7->ABCK 13
👉 トラブルシューティングプロセス
文字列を入力すると、前から1文字ずつ確認します.
数値の場合はnumを追加し、アルファベットの場合はリストに保存し、リストを昇順に出力します.string = list(input())
alpha = []
num = 0
for i in string:
if i.isalpha() :
alpha.append(i)
else:
num += int(i)
alpha.sort() # 알파벳 오름차순으로 정렬
if num == 0:
print(alpha)
else:
alpha.appent(str(num))
print(''.join(alpha))
🌱 n/a.結論
実装の難しさは、使用できるライブラリによって異なり、使用する言語によって異なります.そのため、多くの問題を解決し、言語ライブラリの多様性を体験することが重要です.
Reference
この問題について(エンコーディングテストの実装:シミュレーションと完全なナビゲーション), 我々は、より多くの情報をここで見つけました
https://velog.io/@soy0830/코딩테스트-구현-999hbyoc
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
night = input()
# 행열과 xy는 반대
# 나이트의 행
night_row = int(night[1])
# 나이트의 열
# 열은 a가 시작점이기에 a로 부터 얼마나 떨어져있는지 계산해야함
night_column = int(ord(night[0])) - int(ord('a')) + 1
#나이트가 이동할 수 있는 방향 8개
steps = [(2,1),(1,2),(2,-1),(-1,2),(-2,1),(1,-2),(-2,-1),(-1,-2)]
count = 0
for step in steps:
# 이동하고자 하는 위치 확인
next_row = row + step[0]
next_column = column + step[1]
# 해당 위치로 이동이 가능하다면 카운트 증가
if next_row >= 1 and next_row <= 8 and next_column >= 1 and next_column <= 8:
count += 1
print(count)
入力した文字列が大文字と数字(0~9)のみで構成されている場合は、すべての文字列を昇順に並べて出力し、すべての数字に値を加算します.
例)K 1 KA 5 CB 7->ABCK 13
👉 トラブルシューティングプロセス
文字列を入力すると、前から1文字ずつ確認します.
数値の場合はnumを追加し、アルファベットの場合はリストに保存し、リストを昇順に出力します.
string = list(input())
alpha = []
num = 0
for i in string:
if i.isalpha() :
alpha.append(i)
else:
num += int(i)
alpha.sort() # 알파벳 오름차순으로 정렬
if num == 0:
print(alpha)
else:
alpha.appent(str(num))
print(''.join(alpha))
🌱 n/a.結論
実装の難しさは、使用できるライブラリによって異なり、使用する言語によって異なります.そのため、多くの問題を解決し、言語ライブラリの多様性を体験することが重要です.
Reference
この問題について(エンコーディングテストの実装:シミュレーションと完全なナビゲーション), 我々は、より多くの情報をここで見つけました
https://velog.io/@soy0830/코딩테스트-구현-999hbyoc
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
Reference
この問題について(エンコーディングテストの実装:シミュレーションと完全なナビゲーション), 我々は、より多くの情報をここで見つけました https://velog.io/@soy0830/코딩테스트-구현-999hbyocテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol