728x90
1. 삼총사
https://school.programmers.co.kr/learn/courses/30/lessons/131705
def solution(number):
sol = 0
for i in range(len(number)):
for j in range(i+1, len(number)):
for k in range(j+1, len(number)):
if (number[i] + number[j] + number[k]) == 0:
sol += 1
return sol
문제 풀이
생각해낸 풀이가 O(n^3)이라서 코테에 적절하지 않은 것 같다는 생각을 했다. (통과된 걸 보면 이걸 의도한게 맞는거 같긴 한데..) 지피티한테 물어봤을때는 해시나 투포인트 기법을 쓸 수도 있다 라고는 하는데 제시해준 코드가 틀려서 위 풀이가 맞는 거 같다.
2. 숫자 문자열과 영단어
https://school.programmers.co.kr/learn/courses/30/lessons/81301
처음에는 아래처럼 풀었다.
def solution(s):
while(s.isnumeric() == False):
if "one" in s:
s = s.replace("one", "1")
if "two" in s:
s = s.replace("two", "2")
if "three" in s:
s = s.replace("three", "3")
if "four" in s:
s = s.replace("four", "4")
if "five" in s:
s = s.replace(" five", "5")
if "six" in s:
s = s.replace("six", "6")
if "seven" in s:
s = s.replace("seven", "7")
if "eight" in s:
s = s.replace("eight", "8")
if "nine" in s:
s = s.replace("nine", "9")
if "zero" in s:
s = s.replace("zero", "0")
return int(s)
그리고 시간초과!.. 근데 while을 빼니까
def solution(s):
s = s.replace("one", "1")
s = s.replace("two", "2")
s = s.replace("three", "3")
s = s.replace("four", "4")
s = s.replace("five", "5")
s = s.replace("six", "6")
s = s.replace("seven", "7")
s = s.replace("eight", "8")
s = s.replace("nine", "9")
s = s.replace("zero", "0")
return int(s)
성공! (if문은 디버깅 해보니 없어도 될 것 같아서 제거!)
dic = {"zero": "0", "one": "1", "two": "2", "three": "3", "four": "4", "five": "5", "six": "6", "seven": "7",
"eight": "8", "nine": "9"}
def solution(s):
for key, value in dic.items():
s = s.replace(key, value)
return int(s)
게시판의 다른 솔루션을 보니 이런 방식이 훨씬 간단한 것 같다.
3. [1차] 비밀지도
def solution(n, arr1, arr2):
mapArr1 = []
mapArr2 = []
ansArr = []
ans = []
for i in range(n):
mapArr1 = sliceArr(arr1, i, n)
mapArr2 = sliceArr(arr2, i, n)
for j in range(n):
if mapArr1[j] == '0' and mapArr2[j] == '0':
ansArr.append(' ')
else:
ansArr.append('#')
ans.append(''.join(ansArr))
ansArr.clear()
return ans
def sliceArr(arr, i, n):
dec = bin(arr[i])[2:] # 0100
mapArr = list(dec)
while len(mapArr) != n:
mapArr.insert(0, '0')
return mapArr
문제 풀이
'Algorithm' 카테고리의 다른 글
[1일 3알고리즘] Day6 (0) | 2024.04.18 |
---|---|
[1일 3알고리즘] Day5 (0) | 2024.04.17 |
[1일 3알고리즘] Day3 (0) | 2024.04.15 |
[1일 3알고리즘] Day2 (0) | 2024.04.12 |
[1일 3알고리즘] Day1 (0) | 2024.04.11 |
댓글