일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- #코딩독학 #코딩인강 #코딩배우기 #개발자 #코딩이란 #코딩교육 #프론트엔드부트캠프 #백엔드부트캠프 #국비지원부트캠프 #개발자 #백엔드 #AI부트캠프 #개발자국비지원 #백엔드개발자
- #프론트엔드개발자
- 파이썬 #python #기초 #기본
- Today
- Total
아자아자 화이팅이닷 !
230731 프로그래머스 문제풀기 본문
벌써 7월의 마지막날이다 ,,
시간이 너무 빠르다 ㅠ
오늘도 화이팅 ~!~
* 0 떼기 문제에서
문제는 '정수로 이루어진 문자열 n_str이 주어질 때, n_str의 가장 왼쪽에 처음으로 등장하는 0들을 뗀 문자열을 return하도록 solution 함수를 완성해주세요.' 이다.
나는
def solution(n_str):
answer = ''
for i in n_str:
answer += i
return str(int(answer))
이렇게 코드를 짰는데,
나의 코드를 간략화 한 것 같은 코드가 있어서 가져와봤다 !
def solution(n_str):
return str(int(n_str))
더욱 간결해졌다 !
* 부분 문자열 이어 붙여 문자열 만들기 문제에서
문제는 '길이가 같은 문자열 배열 my_strings와 이차원 정수 배열 parts가 매개변수로 주어집니다. parts[i]는 [s, e] 형태로, my_string[i]의 인덱스 s부터 인덱스 e까지의 부분 문자열을 의미합니다. 각 my_strings의 원소의 parts에 해당하는 부분 문자열을 순서대로 이어 붙인 문자열을 return 하는 solution 함수를 작성해 주세요.' 이다.
일단은 그냥 직관적으로 코드를 짜봤다.
def solution(my_strings,parts):
answer = ''
for i in parts:
a,b = str(i).split(",")
for j in my_strings:
for k in j[a:b:]:
answer += k
return answer
절대 안됨 ㅋ
여기에서는 enumerate()함수를 쓰는게 깔끔하게 풀이 할 수 있는 방법인 것 같았다.
그래서
def solution(my_strings,parts):
answer = ''
for i, indices in enumerate(parts):
s,e = indices
answer += my_strings[i][s:e+1]
return answer
이렇게 풀면 된다 !
enumerate()함수는 for문을 돌릴때 enumerate(parts)로 써줘야하고,
indices는 써도 되고 안써도 된다 ! 그냥 for i, (s,e) in enumerate(parts): 를 해도 된다 !
enumerate() 함수는 파이썬의 내장 함수로, 순회 가능한(iterable) 객체(예: 리스트, 튜플, 문자열)를 입력으로 받아 각 요소의 인덱스와 값을 쌍으로 반환하는 이터레이터(iterator)를 생성한다.
EX)
fruits = ['apple', 'banana', 'cherry']
for idx, fruit in enumerate(fruits):
print(f"Index {idx}: {fruit}")
>>> Index 0: apple
>>> Index 1: banana
>>> Index 2: cherry
enumerate() 함수는 보통 for 루프와 함께 사용되어 순회하면서 인덱스 정보를 활용할 때 편리하게 사용된다 !
* 배열의 원소 삭제하기 문제에서
문제는 '정수 배열 arr과 delete_list가 있습니다. arr의 원소 중 delete_list의 원소를 모두 삭제하고 남은 원소들은 기존의 arr에 있던 순서를 유지한 배열을 return 하는 solution 함수를 작성해 주세요.' 이다.
내가 직관적으로 짠 코드는
def solution(arr,delete_list):
answer = []
for i in arr:
for j in range(0,len(delete_list)):
if i == delete_list[j]:
answer.append(i)
answer.pop(i)
else:
answer.append(i)
return answer
이렇다.
이렇게 코드를 짰을때
IndexError: pop index out of range
이런 오류가 나온다.
왜 이런 오류가 나오는지 GPT에게 물어봤다 !
<GPT의 설명>
해당 코드에서 오류가 발생하는 이유는 answer.pop(i) 구문입니다. pop() 메서드는 리스트에서 원소를 제거하는데, 인덱스를 인자로 받아서 해당 인덱스에 있는 원소를 제거합니다. 하지만 answer.append(i)를 사용하여 원소를 추가한 후에 pop(i)를 사용하면 인덱스 i에 해당하는 원소를 제거하려고 하기 때문에 오류가 발생합니다.
예를 들어, answer 리스트에 [1, 2, 3]이 있을 때, answer.append(i)에서 i가 4인 경우 [1, 2, 3, 4]가 됩니다. 그 후 answer.pop(i)를 하면 i번째 인덱스인 4를 제거하려고 하지만 실제로는 4라는 값이 없으므로 IndexError가 발생합니다.
올바른 방법은 answer.pop(i) 대신 answer.remove(i)를 사용하는 것입니다. remove() 메서드는 리스트에서 특정 값을 제거하는데, 해당 값이 리스트에 존재하면 제거하고, 존재하지 않으면 오류 없이 그대로 남게 됩니다.
이렇다고 한다 *^____^*
GPT가 내놓은 답변은 내가 생각한거와 반대로 접근하면 쉽게 해결 할 수 있는 코드였다 ,,
def solution(arr,delete_list):
return [i for i in arr if i not in delete_list]
쥔쫘 .........
반대로도 생각해보고 이리저리 생각을 해봤으면 풀 수 있었을 문젠데 ㅋ ...
바보약 !!!!!!!!!!!! ㅜ

다음엔 반대로도 생각해보쟈 ...
* 문자 리스트를 문자열로 반환하기 문제에서
문제는 '문자들이 담겨있는 배열 arr가 주어집니다. arr의 원소들을 순서대로 이어 붙인 문자열을 return 하는 solution함수를 작성해 주세요.' 이다.
그래서 나는
def solution(arr):
return ''.join(i for i in arr)
이렇게 코드를 짰는데
def solution(arr):
return ''.join(arr)
이렇게 해도 결과가 같나보다 !
다음엔 이렇게 해야쥐 ,,~
* 암호 해독 문제에서
문제는 '군 전략가 머쓱이는 전쟁 중 적군이 다음과 같은 암호 체계를 사용한다는 것을 알아냈습니다.
- 암호화된 문자열 cipher를 주고받습니다.
- 그 문자열에서 code의 배수 번째 글자만 진짜 암호입니다.
문자열 cipher와 정수 code가 매개변수로 주어질 때 해독된 암호 문자열을 return하도록 solution 함수를 완성해주세요.' 이다.
나는
def solution(cipher,code):
answer = ''
for i in range(code-1,len(cipher),code):
answer += cipher[i]
return answer
이렇게 코드를 짰는데,
훨씬 간략하게 짠 코드가 있어 가져와봤다 !
def solution(cipher, code):
answer = cipher[code-1::code]
return answer
박수 ~!~

좋은 코드인 것 같다 ..!
* 가위바위보 문제에서
문제는 '가위는 2 바위는 0 보는 5로 표현합니다. 가위 바위 보를 내는 순서대로 나타낸 문자열 rsp가 매개변수로 주어질 때, rsp에 저장된 가위 바위 보를 모두 이기는 경우를 순서대로 나타낸 문자열을 return하도록 solution 함수를 완성해보세요.' 이다.
나는 이문제를 직관적으로 풀었는데, dict을 사용한 아주 좋은 답이 있어 가져와봤다 !
def solution(rsp):
d = {'0':'5','2':'0','5':'2'}
return ''.join(d[i] for i in rsp)
아주 깔끔하고 너무 좋은 답안이다 ㅠ
* 할 일 목록 문제에서
문제는 '오늘 해야 할 일이 담긴 문자열 배열 todo_list와 각각의 일을 지금 마쳤는지를 나타내는 boolean 배열 finished가 매개변수로 주어질 때, todo_list에서 아직 마치지 못한 일들을 순서대로 담은 문자열 배열을 return 하는 solution 함수를 작성해 주세요.' 이다.
나는
def solution(todo_list,finished):
return [todo_list[i] for i in range(len(finished)) if finished[i] == 0 ]
이렇게 문제를 해결했는데,
def solution(todo_list, finished):
return [work for idx, work in enumerate(todo_list) if not finished[idx]]
이렇게 문제를 해결하신 분들도 있었다 !
참고용으로 보면 좋을 것 같다 !
* 개미 군단 문제에서
문제는 '개미 군단이 사냥을 나가려고 합니다. 개미군단은 사냥감의 체력에 딱 맞는 병력을 데리고 나가려고 합니다. 장군개미는 5의 공격력을, 병정개미는 3의 공격력을 일개미는 1의 공격력을 가지고 있습니다. 예를 들어 체력 23의 여치를 사냥하려고 할 때, 일개미 23마리를 데리고 가도 되지만, 장군개미 네 마리와 병정개미 한 마리를 데리고 간다면 더 적은 병력으로 사냥할 수 있습니다. 사냥감의 체력 hp가 매개변수로 주어질 때, 사냥감의 체력에 딱 맞게 최소한의 병력을 구성하려면 몇 마리의 개미가 필요한지를 return하도록 solution 함수를 완성해주세요.' 이다.
나는 엄청 직관적으로 풀어서 올리기는 좀 민망하지만 ㅋ.ㅋ ..
def solution(hp):
a = hp // 5
b = hp % 5
c = b // 3
d = b % 3
e = d // 1
return a+c+e
이렇게 풀었다 ㅋ ㅋ ㅋ
근데 깔끔한 답변으로
def solution(hp):
return hp // 5 + (hp % 5 // 3) + ((hp % 5) % 3)
와
def solution(hp):
answer = 0
for ant in [5, 3, 1]:
d, hp = divmod(hp, ant)
answer += d
return answer
가 있었다 !
여기에서 divmod(num1,num2)는 num1을 num2 로 나눈 몫과 나머지를 출력하는 함수이다.
* 5명씩 문제에서
문제는 '최대 5명씩 탑승가능한 놀이기구를 타기 위해 줄을 서있는 사람들의 이름이 담긴 문자열 리스트 names가 주어질 때, 앞에서 부터 5명씩 묶은 그룹의 가장 앞에 서있는 사람들의 이름을 담은 리스트를 return하도록 solution 함수를 완성해주세요. 마지막 그룹이 5명이 되지 않더라도 가장 앞에 있는 사람의 이름을 포함합니다.' 이다.
나는
def solution(names):
return [i for i in names[0::5]]
이렇게 풀었는데,
def solution(names):
return names[::5]
이렇게 하면 완전 간단한 풀이가 된다 !
눈에 익히자 ~
* 홀수 vs 짝수 문제에서
문제는 '정수 리스트 num_list가 주어집니다. 가장 첫 번째 원소를 1번 원소라고 할 때, 홀수 번째 원소들의 합과 짝수 번째 원소들의 합 중 큰 값을 return 하도록 solution 함수를 완성해주세요. 두 값이 같을 경우 그 값을 return합니다.' 이다.
나는
def solution(num_list):
sum1 = 0
sum2 = 0
for i in num_list[::2]:
sum1 += i
for i in num_list[1::2]:
sum2 += i
return sum1 if sum1 > sum2 else (sum2 if sum2 > sum1 else sum1)
이렇게 풀었는데,
이야 ~ 하는 코드가 있어서 가져와봤당
def solution(num_list):
return max(sum(num_list[::2]), sum(num_list[1::2]))
max()함수를 쓰면 깔 꼼 ~

* 대문자와 소문자 문제에서
문제는 '문자열 my_string이 매개변수로 주어질 때, 대문자는 소문자로 소문자는 대문자로 변환한 문자열을 return하도록 solution 함수를 완성해주세요.' 이다.
나는
def solution(my_string):
answer = ''
for i in my_string:
if i.isupper():
i = i.lower()
answer += i
else:
i = i.upper()
answer += i
return answer
이렇게 코드를 짰는데,
join()함수를 써서 더 간단하게
def solution(my_string):
return ''.join([x.lower() if x.isupper() else x.upper() for x in my_string])
해결 할 수도 있고,
swapcase()라는 함수를 이용해서
def solution(my_string):
return my_string.swapcase()
이렇게 짤 수도 있다 !
swapcase()는 문자열의 대소문자를 서로 바꾸는 파이썬 내장 함수이다. 이 함수를 호출하면 문자열의 모든 대문자는 소문자로, 소문자는 대문자로 바뀐다고 한다 !
* 순서 바꾸기 문제에서
문제는 '정수 리스트 num_list와 정수 n이 주어질 때, num_list를 n 번째 원소 이후의 원소들과 n 번째까지의 원소들로 나눠 n 번째 원소 이후의 원소들을 n 번째까지의 원소들 앞에 붙인 리스트를 return하도록 solution 함수를 완성해주세요.' 이다.
나의 첫 코드
def solution(num_list,n):
answer = []
for i in num_list[-(len(num_list)-n)::]:
answer.append(i)
for i in num_list[:n]:
answer.append(i)
return answer
는 실행결과 1개의 테스트를 통과하지 못했다.
그래서 GPT한테 오류에 대해 물어봤더니
단순히 num_list에서 n번째 이후의 원소들과 n번째까지의 원소들을 각각 따로 추출하여 그 뒤에 extend를 사용하여 이어붙이면 됩니다. append를 사용하면 리스트 안에 리스트가 들어가게 되므로 extend를 사용해야 합니다.
이렇게 답변을 해줬다.
근데 extend를 쓰지 않아도
def solution(num_list,n):
return num_list[n:] + num_list[:n]
이렇게 하면 넘나 간단 ㅠ
휴 .... 자괴감 ㅋ .....

화이팅 하자 ㅋ ..
* 직각삼각형 출력하기 문제에서
문제는 ' "*"의 높이와 너비를 1이라고 했을 때, "*"을 이용해 직각 이등변 삼각형을 그리려고합니다. 정수 n 이 주어지면 높이와 너비가 n 인 직각 이등변 삼각형을 출력하도록 코드를 작성해보세요.' 이다.
나는
n = int(input())
for i in range(n):
i += 1
print("*" * i)
이렇게 했는데,
n = int(input())
for i in range(1,n+1):
print('*'*i)
이렇게 하면 더 편함 !
* 주사위의 개수 문제에서
문제는 '머쓱이는 직육면체 모양의 상자를 하나 가지고 있는데 이 상자에 정육면체 모양의 주사위를 최대한 많이 채우고 싶습니다. 상자의 가로, 세로, 높이가 저장되어있는 배열 box와 주사위 모서리의 길이 정수 n이 매개변수로 주어졌을 때, 상자에 들어갈 수 있는 주사위의 최대 개수를 return 하도록 solution 함수를 완성해주세요.' 이다.
초라한 내 코드는
def solution(box,n):
answer = []
for i in box:
answer.append(i // n)
a = answer[0] * answer[1] * answer[2]
return a
ㅋ ㅋ .. 이다 ..
이 문제는 이렇게
def solution(box, n):
x, y, z = box
return (x // n) * (y // n) * (z // n )
또는 이렇게
def solution(box, n):
answer = 1
for b in box:
answer *= b // n
return answer
풀면 될 것 같다 !
* 최댓값 만들기 (2) 문제에서
문제는 '정수 배열 numbers가 매개변수로 주어집니다. numbers의 원소 중 두 개를 곱해 만들 수 있는 최댓값을 return하도록 solution 함수를 완성해주세요.' 이다.
나는
def solution(numbers):
answer = sorted(numbers)
if answer[-1] * answer[-2] > answer[0] * answer[1]:
return answer[-1] * answer[-2]
elif answer[-1] * answer[-2] < answer[0] * answer[1]:
return answer[0] * answer[1]
else:
return answer[-1] * answer[-2]
이렇게 코드를 짰는데, 굳이 if else문을 안쓰더라도
def solution(numbers):
numbers = sorted(numbers)
return max(numbers[0] * numbers[1], numbers[-1]*numbers[-2])
이렇게 더 간단하게 짤 수 있다 !
def solution(numbers):
numbers.sort()
return max(numbers[0] * numbers[1], numbers[-1] * numbers[-2])
이렇게 sort()함수를 써서도 해결할 수 있다 !
* 문자열 정렬하기 문제에서
문제는 '문자열 my_string이 매개변수로 주어질 때, my_string 안에 있는 숫자만 골라 오름차순 정렬한 리스트를 return 하도록 solution 함수를 작성해보세요.' 이다.
내가 쓴 코드는 계속 오류가 나서 GPT의 도움을 받았다 ㅠ
def solution(my_string):
answer = [int(char) for char in my_string if char.isdigit()]
return sorted(answer)
이렇게 하면 아주 간단하게 완성할 수 있다 !
isdigit() 메서드를 사용해서 숫자인지 확인할 수 있다 !
그리고 return answer.sort()는 왜 안되는지 궁금해서 GPT에게 물어보았다 !
<GPT 설명>
sort() 메서드는 리스트를 오름차순으로 정렬하고, 정렬된 리스트를 반환하지 않고 None을 반환합니다. 따라서 numbers.sort()를 사용하면 numbers 리스트는 정렬되지만, None이 반환되기 때문에 원하는 결과가 나오지 않습니다.
올바른 방법은 numbers.sort()를 사용하지 않고, sorted(numbers)를 사용하는 것입니다. sorted() 함수는 주어진 리스트를 오름차순으로 정렬한 새로운 리스트를 반환합니다.
그렇다고 한다 ! o(^▽^)o
* 특별한 이차원 배열 2 문제에서
문제는 'n × n 크기의 이차원 배열 arr이 매개변수로 주어질 때, arr이 다음을 만족하면 1을 아니라면 0을 return 하는 solution 함수를 작성해 주세요.' 이다.
- 0 ≤ i, j < n인 정수 i, j에 대하여 arr[i][j] = arr[j][i]
나는 처음에 코드를
def solution(arr):
for i in range(len(arr)):
for j in range(len(arr[i])):
return 1 if arr[i][j] == arr[j][i] else 0
이렇게 짰었다.
근데 테스트를 다 통과하지 못해서 고민하다가 GPT에게 물어봤다.
오류가 난 이유는 바로
return 문이 중첩된 반복문 안에 있기 때문에 첫 번째 원소의 비교만 수행하고 바로 함수를 종료하게 되기 때문이었다 !
이말은 arr[0][0] == arr[0][0]이면 바로 return 1을 한다는 의미 ,,
그래서
def solution(arr):
for i in range(len(arr)):
for j in range(len(arr[i])):
if arr[i][j] != arr[j][i]:
return 0
return 1
이렇게 코드를 수정했다 !
여기에서 for j in range(len(arr)) 이라고 바꿔도 똑같다 !
* 덧셈식 출력하기 문제에서
문제는 '두 정수 a, b가 주어질 때 다음과 같은 형태의 계산식을 출력하는 코드를 작성해 보세요.' 이다.
a + b = c
처음에 나는
a,b = int(input().split(" "))
print(f"{a} + {b} = {a+b}")
이렇게 코드를 짰는데, 실행이 되지 않아서 힌트를 보고 다시 코드를 짰다 .
다시 짠 코드는
a , b = map(int, input().strip().split(" "))
print(f"{a} + {b} = {a+b}")
이렇다 !
위의 코드가 안되는 이유는
<GPT의 설명>
input() 함수로 사용자 입력을 받으면 그 결과는 문자열 형태로 반환됩니다.
그리고 split(" ") 메서드를 사용하여 공백을 기준으로 문자열을 분리할 수 있습니다.
그러나 split(" ")의 결과는 리스트 형태이며, 리스트는 int() 함수로 한꺼번에 변환할 수 없습니다.
그래서 map()함수를 써야한다 !
* x 사이의 개수 문제에서
문제는 '문자열 myString이 주어집니다. myString을 문자 "x"를 기준으로 나눴을 때 나눠진 문자열 각각의 길이를 순서대로 저장한 배열을 return 하는 solution 함수를 완성해 주세요.' 이다.
나는
def solution(myString):
answer = []
myString = myString.split("x")
for i in myString:
answer.append(len(i))
return answer
이렇게 코드를 짰는데,
이를 리스트 컴프리헨션 하면
def solution(myString):
return [len(w) for w in myString.split('x')]
이렇게 된다 !
* 가장 큰 수 찾기 문제에서
문제는 '정수 배열 array가 매개변수로 주어질 때, 가장 큰 수와 그 수의 인덱스를 담은 배열을 return 하도록 solution 함수를 완성해보세요.' 이다.
이 문제를 풀기 위해서는 index()함수를 사용해야 할 것같아서 찾아보았다 !
index 함수는 배열에서 값의 위치를 찾아주는 함수이며, 중복된 값이 있으면 가장 최소의 위치를 리턴하는 함수이다.
# a 리스트에서 10의 위치 찾기. (최소값인 1이 출력)
a = [11,10,12,13,20,31,11,10,10,11]
print(a.index(10))
-----------------------------------
1
# a 리스트에서 2번째 ~ 9번째 위치에서 10의 위치 찾기. (최소값인 7이 출력)
a = [11,10,12,13,20,31,11,10,10,11]
print(a.index(10,2,9)) # index(value, start, end)
----------------------------------------------------
7
# a 문자열에 '1' 이라는 문자 위치 찾기
a = '123451'
print(a.index('1'))
---------------------
0
# a 문자열에 1번째 ~ 6번째 위치에서 '1' 이라는 문자 위치 찾기
a = '123451'
print(a.index('1',1,6))
------------------------
5
그래서 index()함수를 사용해서 이 문제를 풀어보면
def solution(array):
return max(array),array.index(max(array))
이렇게 된다 !
* 배열 회전시키기 문제에서
문제는 '정수가 담긴 배열 numbers와 문자열 direction가 매개변수로 주어집니다. 배열 numbers의 원소를 direction방향으로 한 칸씩 회전시킨 배열을 return하도록 solution 함수를 완성해주세요.' 이다.
나는
def solution(numbers,direction):
if direction == "right":
return numbers[-1:]+numbers[:len(numbers)-1]
elif direction == "left":
return numbers[1:]+numbers[0:1]
이렇게 코드를 짰는데,
def solution(numbers, direction):
return [numbers[-1]] + numbers[:-1] if direction == 'right' else numbers[1:] + [numbers[0]]
이렇게 간략화시킬 수 있다 !
* 외계행성의 나이 문제에서
문제는 '우주여행을 하던 머쓱이는 엔진 고장으로 PROGRAMMERS-962 행성에 불시착하게 됐습니다. 입국심사에서 나이를 말해야 하는데, PROGRAMMERS-962 행성에서는 나이를 알파벳으로 말하고 있습니다. a는 0, b는 1, c는 2, ..., j는 9입니다. 예를 들어 23살은 cd, 51살은 fb로 표현합니다. 나이 age가 매개변수로 주어질 때 PROGRAMMER-962식 나이를 return하도록 solution 함수를 완성해주세요.' 이다.
나는 이 문제를 보자마자 dict을 써야겠다는 생각을 해서 코드를 짰는데, for문에서 str(age)만 하면 되는걸 헤맸다 ㅠ
그래서 dict을 사용한 코드는
def solution(age):
answer = ''
alpha = {'0':'a', '1':'b', '2':'c', '3':'d', '4':'e', '5':'f',
'6':'g', '7':'h', '8':'i', '9':'j'}
for i in str(age):
answer += alpha[i]
return answer
이렇다 !
근데 다른 좋은 답들도 많은 것 같아 가져와봤다 !
def solution(age):
answer = ''
for i in str(age):
answer += chr(int(i) + 97)
return answer
위의 코드를 간략화시킨
def solution(age):
return ''.join([chr(int(i)+97) for i in str(age)])
도 있다 !
여기에서 chr() 함수는 괄호( ) 안에 숫자를 넣으면 그 숫자의 아스키코드에 대응하는 문자를 반환하는 함수이다.
한마디로 아스키코드를 문자열로 변환하는 함수이다.
반대로 ord()함수는 괄호( ) 안에 문자를 넣으면 그 문자에 해당하는 아스키코드를 숫자로 반환하는 함수이다.
한마디로 문자열을 아스키코드로 변환하는 함수이다.
이 개념을 알고 있으면 더 쉽게 풀 수 있다 !
참고로 chr(97)은 'a'이다 !
그리고
def solution(age):
return str(age).translate(str.maketrans('0123456789', 'abcdefghij'))
이렇게도 풀 수 있는데,
maketranse로 문자열 매핑 테이블을 만들고, translate함수가 매핑 테이블을 기반으로 문자열을 변환해준다 !
배워야 할게 참 많다 . . .

오늘도 열심히 해똬 . . .
피곤쑤 ,,~
오늘은 24개 풀었닥 !
힘내좌 ,,~
'TIL' 카테고리의 다른 글
230802 프로그래머스 문제풀기 (0) | 2023.08.02 |
---|---|
230801 프로그래머스 문제풀기 (0) | 2023.08.02 |
230730 프로그래머스 문제풀기 (1) | 2023.07.31 |
230729 오프라인 스터디 & 프로그래머스 문제풀기 (0) | 2023.07.30 |
230728 프로그래머스 문제풀기 (0) | 2023.07.29 |