アルゴリズム/プログラマ/レベル1/210612/5問題(Pythonを使用)
16497 ワード
2021年6月12日
これはプログラマーが解いたレベル1 5問題の集合です.
コードには問題解決の説明が注記されています.
📖質問1:2つ引いてプラス
΄コード1(import組合せ)
from itertools import combinations
def solution(numbers):
answer = []
# numbers에서 2개를 뽑는 모든 경우
for i, j in combinations(numbers, 2):
add = i + j
if add not in answer:
answer.append(add)
answer.sort()
return answer
コード2
def solution(numbers):
answer = []
for i in range(len(numbers)-1):
for j in range(i+1, len(numbers)):
add = numbers[i] + numbers[j]
if add not in answer:
answer.append(add)
answer.sort()
return answer
📖質問2:2016年
パスワード
def solution(a, b):
after = 0
# 각 달에 있는 날짜수를 담은 리스트
days = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
day = ['THU', 'FRI', 'SAT', 'SUN', 'MON', 'TUE', 'WED']
# x월이라면 x-1월까지의 날짜수를 더해준다.
for i in range(a-1):
after += days[i]
# y일을 더해준다.
after += b
# 요일을 구한다.
answer = day[after%7]
return answer
📖質問3:秘密の地図
パスワード
def solution(n, arr1, arr2):
answer = []
for one, two in zip(arr1, arr2):
num = one | two
# bin()은 맨 앞에 '0b'를 포함하는 문자열을 반환하므로 잘라내기
num = bin(num)[2:]
# 문자열 5글자 채우기
while len(num) < n:
num = '0' + num
tmp = ''
for a in num:
if a == '1':
tmp += '#'
else:
tmp += ' '
answer.append(tmp)
return answer
📖質問4:中間文字を入力
パスワード
ef solution(s):
answer = ''
mid = len(s) // 2
# 글자수가 짝수이면
if len(s) % 2 == 0:
# 가운데 두 글자
answer += s[mid-1] + s[mid]
# 글자수가 홀수이면
else:
# 가운데 한 글자
answer += s[mid]
return answer
΄コード->他の人のコード
from itertools import combinations
def solution(numbers):
answer = []
# numbers에서 2개를 뽑는 모든 경우
for i, j in combinations(numbers, 2):
add = i + j
if add not in answer:
answer.append(add)
answer.sort()
return answer
def solution(numbers):
answer = []
for i in range(len(numbers)-1):
for j in range(i+1, len(numbers)):
add = numbers[i] + numbers[j]
if add not in answer:
answer.append(add)
answer.sort()
return answer
パスワード
def solution(a, b):
after = 0
# 각 달에 있는 날짜수를 담은 리스트
days = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
day = ['THU', 'FRI', 'SAT', 'SUN', 'MON', 'TUE', 'WED']
# x월이라면 x-1월까지의 날짜수를 더해준다.
for i in range(a-1):
after += days[i]
# y일을 더해준다.
after += b
# 요일을 구한다.
answer = day[after%7]
return answer
📖質問3:秘密の地図
パスワード
def solution(n, arr1, arr2):
answer = []
for one, two in zip(arr1, arr2):
num = one | two
# bin()은 맨 앞에 '0b'를 포함하는 문자열을 반환하므로 잘라내기
num = bin(num)[2:]
# 문자열 5글자 채우기
while len(num) < n:
num = '0' + num
tmp = ''
for a in num:
if a == '1':
tmp += '#'
else:
tmp += ' '
answer.append(tmp)
return answer
📖質問4:中間文字を入力
パスワード
ef solution(s):
answer = ''
mid = len(s) // 2
# 글자수가 짝수이면
if len(s) % 2 == 0:
# 가운데 두 글자
answer += s[mid-1] + s[mid]
# 글자수가 홀수이면
else:
# 가운데 한 글자
answer += s[mid]
return answer
΄コード->他の人のコード
def solution(n, arr1, arr2):
answer = []
for one, two in zip(arr1, arr2):
num = one | two
# bin()은 맨 앞에 '0b'를 포함하는 문자열을 반환하므로 잘라내기
num = bin(num)[2:]
# 문자열 5글자 채우기
while len(num) < n:
num = '0' + num
tmp = ''
for a in num:
if a == '1':
tmp += '#'
else:
tmp += ' '
answer.append(tmp)
return answer
パスワード
ef solution(s):
answer = ''
mid = len(s) // 2
# 글자수가 짝수이면
if len(s) % 2 == 0:
# 가운데 두 글자
answer += s[mid-1] + s[mid]
# 글자수가 홀수이면
else:
# 가운데 한 글자
answer += s[mid]
return answer
΄コード->他の人のコード
def string_middle(str):
return str[(len(str)-1)//2:len(str)//2+1]
📖質問5:私は同じ数字が好きではありません。
パスワード
def solution(arr):
# 첫 문자는 미리 담아둔다
answer = [arr[0]]
for i in range(1,len(arr)):
# 이전 문자와 현재 문자와 같지 않을 때만 정답 리스트에 문자를 담는다.
if arr[i]!=arr[i-1]:
answer.append(arr[i])
return answer
΄コード->他の人のコード
def solution(arr):
# 첫 문자는 미리 담아둔다
answer = [arr[0]]
for i in range(1,len(arr)):
# 이전 문자와 현재 문자와 같지 않을 때만 정답 리스트에 문자를 담는다.
if arr[i]!=arr[i-1]:
answer.append(arr[i])
return answer
彼らは、現在の文字がarrにあり、前の文字が答えリストの末尾(答え[1])にあることを比較することによって問題を解く.
def no_continuous(s):
result = []
for c in s:
if (len(result) == 0) or (result[-1] != c):
result.append(c)
return result
Reference
この問題について(アルゴリズム/プログラマ/レベル1/210612/5問題(Pythonを使用)), 我々は、より多くの情報をここで見つけました https://velog.io/@yellowsummer/Algorithmprogrammerslevel12106125문제テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol