インプリメンテーション
18604 ワード
就職のためのコードテストとPython(羅東彬著)の本と講義を読んで整理した文章だ.
レッスンソース:https://www.youtube.com/channel/UChflhu32f5EUHlY7_SetNWw
実装とは,頭の中のアルゴリズムをソースコードに変換する過程である. problem - thinking - solution これは、簡単に考えられますが、ソースコードに移動するのは難しいという問題です.
アルゴリズムは簡単ですが、コードが長すぎる問題 の実数演算を処理する特定の小数点以下の桁数に出力する必要がある問題 .文字列が特定の基準に従って切断され、処理する必要がある問題 適切なライブラリを検索して使用する必要があります-すべてのシーケンスとすべての組合せの問題
一般に,アルゴリズム問題における二次元空間は行列の意味として用いられる.
たとえば、2 Dマップ内の座標に存在するキャラクタが位置に繰り返し移動する場合、マトリクスの概念を適切に解決する必要があります.行列:2 Dデータを表のような役割として簡単に表示できる数学的概念.(Pythonでは2 Dリスト)
シミュレーションと完全探索問題では,二次元空間における方向ベクトルがしばしば用いられる.
旅行家AはNxNサイズの正方形空間に立っている.始点座標は常に(1,1)上、下、左、右方向に移動できます.
<移動計画書>
行置き書きを基準に、L、R、U、Dの1文字を繰り返し書きます.
入力条件の第1行は、空間サイズを表すNを与える.(1 <= N <= 100) 第行は旅行家Aが移動する計画書の内容を示した.(1<=移動回数<=100) しゅつりょくじょうけんの最初の行では、スペースを基準に、旅行者Aが最終的に到着した場所の座標(X,Y)を別々に印刷します.
整数Nを入力する場合は、0時00分00秒からN時59分59秒までのすべての時刻のうち、1つの時刻だけが3を含む場合でも、プログラムを作成します.
入力条件第1行は整数Nを入力する.(0 <= N <= 23) しゅつりょくじょうけん00時00分00秒からN時59分59秒までの全時刻において、3が1つでも全ての場合の数字が出力されます. <ソリューション>
すべての可能な角度から逐一計算して解決できる問題です.
1日86400秒なので、00時00分00秒から23時59分59秒まで、すべて86400種類です.したがって,1の視点を増やし,3が含まれているかどうかを確認する.このタイプを「完全ナビゲーション」問題タイプと呼ぶ.これは可能な場合にすべての数の探索方法を検査することである.
王室庭園とチェス盤は8×8座標平面です.ナイトは王室の庭の特定の部屋に立っている.ナイトはL字でしか移動できず、庭の外から出られません.
特定の場所から次の2つの場合に移動できます.
1.2つのセルを水平に移動し、1つのセルを垂直に移動
2.垂直に2つのグリッドを移動し、水平に1つのグリッドを移動
座標平面上にノードの位置が指定され、ノードが移動できる場合は、その数を出力します.
入力条件の最初の行に、現在の夜間店の位置座標を表す2つの文字列が入力されます. しゅつりょくじょうけんは、第1行の移動可能なナイト数を出力する.
アルファベットの大分子と数字(0~9)からなる文字列を入力します.このとき、すべてのアルファベットを昇順に並べて出力し、後ろに助聴数字の値を付けて印刷します.
ex) K1KA5CB7 -> ABCKK13
入力条件の最初の行には文字列Sがあります.(1<=S長<=10000) .
レッスンソース:https://www.youtube.com/channel/UChflhu32f5EUHlY7_SetNWw
実装:シミュレーションと完全なナビゲーション
実装とは,頭の中のアルゴリズムをソースコードに変換する過程である.
実装タイプの例
インプリメンテーション
一般に,アルゴリズム問題における二次元空間は行列の意味として用いられる.
たとえば、2 Dマップ内の座標に存在するキャラクタが位置に繰り返し移動する場合、マトリクスの概念を適切に解決する必要があります.
シミュレーションと完全探索問題では,二次元空間における方向ベクトルがしばしば用いられる.
# 동, 북, 서, 남
dx = [0, -1, 0, 1]
dy = [1, 0, -1, 0]
# 현재 위치
x, y = 2, 2
for i in range(4):
# 다음 위치
nx = x + dx[i]
ny = y + dy[i]
print(nx, ny)
# 2 3 동
# 1 2 북
# 2 1 서
# 3 2 남
上下左右の問題.
旅行家AはNxNサイズの正方形空間に立っている.始点座標は常に(1,1)上、下、左、右方向に移動できます.
<移動計画書>
行置き書きを基準に、L、R、U、Dの1文字を繰り返し書きます.
入力条件
# N 입력 받기
n = int(input())
x, y = 1, 1
plans = input().split()
# L, R, U, D에 따른 이동 방향
dx = [0, 0, -1, 1]
dy = [-1, 1, 0, 0]
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)
時刻
整数Nを入力する場合は、0時00分00秒からN時59分59秒までのすべての時刻のうち、1つの時刻だけが3を含む場合でも、プログラムを作成します.
入力条件
すべての可能な角度から逐一計算して解決できる問題です.
1日86400秒なので、00時00分00秒から23時59分59秒まで、すべて86400種類です.したがって,1の視点を増やし,3が含まれているかどうかを確認する.
N = int(input(""))
count = 0
for k in range(N+1):
for j in range(60):
for i in range(60):
if "3" in str(k) + str(j)+str(i):
count += 1
print(count)
王室の夜
王室庭園とチェス盤は8×8座標平面です.ナイトは王室の庭の特定の部屋に立っている.ナイトはL字でしか移動できず、庭の外から出られません.
特定の場所から次の2つの場合に移動できます.
1.2つのセルを水平に移動し、1つのセルを垂直に移動
2.垂直に2つのグリッドを移動し、水平に1つのグリッドを移動
座標平面上にノードの位置が指定され、ノードが移動できる場合は、その数を出力します.
入力条件
point = input("")
points = [point[0], point[1]]
dx = [2, 2, -2, -2, 1, -1, 1, -1]
dy = [1, -1, 1, -1, 2, 2, -2, -2]
x, y = (ord(points[0])-ord('a') + 1), int(points[1])
count = 0
for i in range(8):
nx = x + dx[i]
ny = y + dy[i]
if nx < 1 or ny < 1 or nx > 8 or ny > 8:
continue
count += 1
print(count)
文字列の再配置
アルファベットの大分子と数字(0~9)からなる文字列を入力します.このとき、すべてのアルファベットを昇順に並べて出力し、後ろに助聴数字の値を付けて印刷します.
ex) K1KA5CB7 -> ABCKK13
入力条件
a = list(input(""))
b = []
sum = 0
for i in a:
if 65 <= ord(i) <= 90: # i.isalpha()
b.append(i)
elif 48 <= ord(i) <= 57:
sum += int(i)
# b.sort()
# for i in b:
# print(i, end="")
# print(sum)
b.sort()
if sum != 0:
b.append(str(sum))
print(''.join(b))
Reference
この問題について(インプリメンテーション), 我々は、より多くの情報をここで見つけました https://velog.io/@jusung-c/구현テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol