[CodeUp]Pythonベース100剤


6018.ベース-I/O


🔆 24時間:分形式で時間を入力する場合は、そのまま出力する練習をします.
# 내 코드
a,b = input().split(":")
print(f"{a}:{b}")

# 풀이 코드
a, b = input().split(':')
print(a, b, sep=':')    # separator 사용

6027-6031. ベース→出力変換/値変換


🔆 10進数を入力し、16進数を出力します.
a = int(input())
print('%x' % a)
%x 16進数で出力(小文字) %X 16進数で出力(大文字) 10進数位置に10文字を使用(01 2 3 4 5 6 8 9) 16進数の位置に16文字(01 2 3 4 5 6 7 9 a b c d e f)を使用

🔆 16進数を入力し、8進数を出力します.
a = input()
n = int(a, 16)    # a를 16진수로 저장
print('%o' % n)
%oを8進で出力

🔆 英字を入力し、10進数Unicodeで出力します.
a = ord(input())    # 입력값을 10진수 유니코드로 저장 *ord()
print(a)
🔆 英字を入力し、Unicode文字を出力します.
a = int(input())
print(chr(a))    # 입력값(정수)을 유니코드 문자로 저장 *chr()

6042.ベース値の変換


🔆 英字を入力し、10進数Unicodeで出力します.
# 내 코드
a = float(input())
print('%0.2f' %a)

# 풀이 코드 1
f = float(input())
print(round(f,2))

# 풀이 코드 2
a=float(input())
print(format(a, ".2f"))    # format 함수

6046-6047. ベース-ビット切り替え演算


a<<1 -> a * 2^1 a<<2 -> a * 2^2 a<<b -> a * 2^b

6051.基礎-比較演算


🔆 2つの値が異なる場合はTrue、同じ場合はFalse出力の2つの整数を入力します.
# 내 코드
a, b = input().split()
a, b = int(a), int(b)
if a != b:
  print(True)
else:
  print(False)

# 풀이 코드
a, b = input().split()
a, b = int(a), int(b)
print(a!=b)    # print() 안에 들어간 내용에 부합할 경우 True 출력.

6052.基礎-論理演算


🔆 整数を入力すると、真/偽で評価するプログラムが作成されます(0は偽、0は真)
# 내 코드
a = int(input())
print(a!=0)

# 풀이 코드
n = int(input())
print(bool(n))    # boolean - 숫자 0은 False, 0이 아니면 True

6056.基礎-論理演算


🔆 2つの整数値を入力すると、真/偽の値が異なる場合にのみ、真出力が入力されます.
# 풀이 코드
a, b=input().split()
c = bool(int(a))
d = bool(int(b))
print((c and (not d)) or ((not c) and d))    
# c and (not d), (not c) and d - 서로 불값이 다름을 의미

6063-6064. ベース-3つの演算


🔆 2つの入力整数の大きな値を出力します(3つの演算を使用します).
🌭 さんこうえんざん x if A else y A:条件式 x:AがTrueの場合の値 y:AがFalseの場合の値
a, b = input().split()
a, b = int(a), int(b)
print(a if a > b else b)
🔆 3つの入力整数の最小値を出力します(3つの演算を使用します).
# 내 코드
a, b, c = input().split()
a, b, c  = int(a), int(b), int(c)

x = (a if a<b else b) if (a if a<b else b)<c else c
print(x)

# 풀이 코드
a, b, c = input().split()
a = int(a)  
b = int(b)
c = int(c)

d = a if a<b else b    # 내 코드를 순서에 따라 나누면 나오는 형태
e = d if d<c else c    # a와 b를 먼저 비교 후, c와 비교

print(e)

6071, 6074. ベース-繰り返し実行構造


🔆 折り返し入力を続行する整数は0以外で出力、0は停止を示します
# 내 코드
a = int(input())
while a != 0:
  print(a)
  a = int(input())

# 풀이 코드
while True:    # 무한루프**
    a=input()
    a=int(a)
    if a==0:
        break
    else:
        print(a)
🔆 英字小文字(a~z)を1文字入力すると、aからそのアルファベットへのアルファベットが順番に出力されます
A = ord(input())    # ord로 알파벳문자의 정수값 알아내기
t = ord('a')    # ord로 문자 a의 정수값 알아내기
while t <= A:
  print(chr(t), end=' ')    # chr(정수값)로 유니코드문자 출력
  t += 1

6079.基礎-総合


🔆 1, 2, 3, ...追加を続行すると、入力した整数以下の整数と等しいか小さいかの前にのみプログラムが作成されます.
# 내 코드
while True:
  a = int(input())
  sum = 0
  for i in range(1, a+1):
    sum += i
    if sum >= a:
      print(i)
      break
      
# 풀이 코드
n = int(input())
s = 0
t = 0

while s<n :
  t = t+1
  s = s+t
  
print(t)

>>> 너무 복잡하게 생각했음. 조건을 반대로 생각해보면 훨씬 간단하게 풀 수 있었음.

6081.基礎-総合


🔆 A、B、C、D、E、Fのいずれかを入力すると、1からFにかけた16進九九段が出力されます.
# 입력 예시
B

# 출력 예시
B*1=B
B*2=16
B*3=21
B*4=2C
B*5=37
B*6=42
B*7=4D
B*8=58
B*9=63
B*A=6E
B*B=79
B*C=84
B*D=8F
B*E=9A
B*F=A5


# 내 코드
a = int(input(), 16)    # 입력값을 16진수로 인식하고 그를 정수값으로 변환하여 저장

for i in range(1, 16):    
  print('%X*'%a, '%X'%i, '=%X'%(a*i), sep='')


# 풀이 코드
n = int(input(), 16)

for i in range(1, 16) :
  print("%X*%X=%X"%(n,i,n*i))    # 문자열 나누지 않고 한번에
🍕 小数点を表す #a = 3.56242 1. '%.2f' %a 2. round(a, 2) 3. format(a, '.2f') 4. '{0:0.2f}'.format(a) **roundは四捨五入と小数部はありませんが、0で桁数を埋めることはできません。 print(round(5, 2)) = 5 print('%.2f' % 5) = 5.00

6093.ベース-リスト


🔆 ランダムコールn回のチェックイン時に、コール番号を逆出力
# 내 코드
n = int(input())
a = input().split()

a.reverse()    # 리스트 a를 역순으로 재배열

for i in range(n):
  print(int(a[i]), end=' ')
  
# 풀이 코드
n = int(input())
a = input().split()

for i in range(n) :
  a[i] = int(a[i])

for i in range(n-1, -1, -1):    # range를 역순으로
  print(a[i], end=' ')
🍕 range 変数in range(開始、終了、増幅) ex)for変数in range(0,10,2) # 0から9まで2個ずつ ex)for変数in range(10,0,-1) # 10から1の逆シーケンス **変数in reverse(range(10)) # 9~0

6094.ベース-リスト

# 내 코드
n = int(input())
a = input().split()

for i in range(n):
  a[i] = int(a[i])

a.sort()    # sort로 제일 작은 값을 맨 앞으로 뺌
print(a[0])


# 풀이 코드
n = int(input())
a = input().split()

for i in range(n) :
  a[i] = int(a[i])

min = a[0]
for i in range(0, n) :
  if a[i] < min :
    min = a[i]

print(min)
🍖 私はずっと値を比較する方法を考えていたが、最後にやっとsortを思いついた.
コードから方法を見ました、ユリカ.

6095.ベース-リスト


🔆 碁盤に白石を置く
#入力 5 1 1 2 2 3 3 4 4 5 5 #出力 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
# 내 코드
a = []
for i in range(19):    # 1
  a.append([])
  for j in range(19):
    a[i].append(0)

n = int(input())    # 2
N = []
for i in range(n):
  (x, y)= input().split()
  N.append((int(x), int(y)))

for i in range(n):    # 3
  q = N[i][0] -1
  r = N[i][1] -1
  a[q][r] = 1

for i in range(19):    # 4
  for j in range(19):
    print(a[i][j], end=' ')
  print()  


>>> 2번 블록에서 input 받은 값을 튜플로 리스트에 저장 후, 
3번 블록에서 해당 위치에 1을 저장함 (일을 두번 함 ㅎ)
range도 세상 복잡하게 잡았음,,



# 풀이 코드
d=[]
for i in range(20) :    # 1
  d.append([])
  for j in range(20) : 
    d[i].append(0)

n = int(input())     # 2
for i in range(n) :
  x, y = input().split()
  d[int(x)][int(y)] = 1

for i in range(1, 20) :    # 3
  for j in range(1, 20) : 
    print(d[i][j], end=' ')
  print()
  
>>> 2번 블록에서 input 받고 바로 그 값을 이용해 해당 위치에 1 저장

6098.ベース-リスト


🔆 アリの移動経路を表示
#入力 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0 0 0 0 0 1 1 0 0 1 1 1 0 0 0 1 1 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 1 0 1 1 0 0 0 0 1 0 1 0 1 1 0 0 0 0 1 2 1 0 1 1 0 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 #出力 1 1 1 1 1 1 1 1 1 1 1 9 9 1 0 0 0 0 0 1 1 0 9 1 1 1 0 0 0 1 1 0 9 9 9 9 9 1 0 1 1 0 0 0 0 0 9 1 0 1 1 0 0 0 0 1 9 1 0 1 1 0 0 0 0 1 9 1 0 1 1 0 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1
# 내 코드
map = []

for i in range(10):
  a = list(input().split())
  map.append(a)

x = 1
y = 1

while True:
  if int(map[x][y]) == 0:
    map[x][y] = 9
    y += 1
  elif int(map[x][y]) == 1:
    x += 1
    if int(map[x][y-1]) != 2:
      if int(map[x][y-1]) == 0:
        map[x][y-1] = 9
      else:
        break
    else:
      map[x][y-1] = 9
      break

  else:
    map[x][y] = 9
    break

for a in range(10):
  for b in range(10):
    print(map[a][b], end=' ')
  print()




# 풀이 코드
m=[]
for i in range(12) :
  m.append([])
  for j in range(12) :
    m[i].append(0)

for i in range(10) :
  a=input().split()
  for j in range(10) :
    m[i+1][j+1]=int(a[j])

x = 2
y = 2
while True :
  if m[x][y] == 0 :
    m[x][y] = 9
  elif m[x][y] == 2 :
    m[x][y] = 9
    break

  if (m[x][y+1]==1 and m[x+1][y]==1) or (x==9 and y==9) :
    break

  if m[x][y+1] != 1 :
    y += 1
  elif m[x+1][y] != 1 :
    x += 1
    

for i in range(1, 11) :
  for j in range(1, 11) :
    print(m[i][j], end=' ')
  print()