일반적인 최소 거스름돈 알고리즘과는 다른 문제이다. 여러모로 생각할 부분이 참 많았다.①. N의 값이 0kg이 된다면 설탕 봉지의 개수를 출력한다.②. N의 값이 1kg, 2kg, 4kg라면 3과 5로 나누어 떨어질 수 없으므로 -1을 출력한다.③. N의 값이 3kg라
양의 정수 X를 문자로 인식하도록 설정하였을 때 연속된 두 개의 수의 차이가 일정한지 확인하는 조건문을 작성했다.1 ≤ N ≤ 99인 경우 한수의 개수는 N개가 된다.N ≥ 100인 경우 한수의 개수를 계산해주면 되는데 연속된 두 개의 수의 차이가 모두 같아야하므로 이
괄호 문자열을 입력받았을 때 만약 "("이 들어온다면 스택에 추가해주고 ")"이 들어온다면 제거해주는 방식으로 코드를 작성했다.")"이 들어오는 경우 두 가지로 나눠주었다. 만약 스택의 마지막 원소의 값이 "("이 된다면 쌍을 이루어 제거해줄 수 있지만 그렇지 않고 스
명령 길이에 대해서 경우를 나눈 다음 각각의 명령을 코드로 작성했다.sys를 사용하지 않으면 시간초과가 발생했다. sys를 사용했더니 정상적으로 출력되었다.💡소요시간 : 7m
각 사람이 돈을 인출하는데 필요한 시간의 합이 최소가 되려면 인출하는데 필요한 시간이 적게 걸리는 사람부터 오름차순으로 정렬을 수행해야 한다.💡소요시간 : 3m
처음에는 동전의 가치를 내림차순으로 정렬해서 반복문을 돌려 K보다 작거나 같은 최초의 값이 나타나면 K에서 동전의 가치를 빼주고 동전개수를 하나 증가시키고 인덱싱을 다시 처음으로 바꿔 탐색하는 방법을 택했다. 하지만 이 방법은 시간초과가 발생했다.동전의 가치를 내림차순
이분 탐색의 기초 문제라고 생각하고 접근했다. 일단 이분 탐색을 수행하려면 반드시 정렬이 된 상태여야 하므로 정렬을 수행한 다음 이분 탐색 함수를 사용해서 원소를 탐색했다.정렬된 자료를 반으로 나누어 탐색하는 방법자료는 반드시 오름차순으로 정렬된 자료여야 한다.이분 탐
입력값으로 0이 나오면 list에 있는 마지막 원소의 값을 pop해주면 된다.이 때, 문제 마지막에 정수가 "0"일 경우에 지울 수 있는 수가 있음을 보장할 수 있다고 했으므로 경우를 나누어 줄 필요가 없다.💡소요시간 : 2m
머릿속으로는 이뤄졌지만 코딩으로 옮기는 과정에서 시간이 많이 걸렸다.①. 8×8 크기의 체스판 모범답안은 2가지로 나눌 수 있다. 하나는 체스판의 좌상단 색깔이 하얀색인 경우, 다른 하나는 체스판의 좌상단 색깔이 검은색인 경우이다.②. 이 때, N과 M의 최댓값은 50
명령의 길이에 따라 구분하고 각 명령을 수행하는 코드를 작성했다.💡소요시간 : 2m
별다른 자료 구조를 사용하지 않고 작성했다가 시간초과가 발생했다. 이 문제는 자료 구조 중의 하나인 큐를 이용하는 문제다.맨 위에 있는 카드를 remove하고 그 다음 맨 위에 있는 카드를 맨 아래로 옮기는 과정을 수행하는 popleft를 사용하면 된다.💡소요시간 :
여러모로 자괴감을 많이 느꼈던 문제였다. 다른 사람의 시간을 보니 내가 작성한 코드의 시간이 매우 길게 나와 시간을 줄여보려고 노력을 많이 했는데 이게 한계인 것 같다.💡소요시간 : 15m
from collections import deque를 이용해서 덱 자료 구조를 구현하는 문제였다.💡소요시간 : 4m
(최솟값) × (최댓값) < (최댓값) × (최댓값)이므로 하나는 오름차순 정렬, 다른 하나는 내림차순 정렬을 해줘야 한다.💡소요시간 : 2m
"숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,000,000보다 작거나 같다." 부분은 이분 탐색 알고리즘을 이용하라는 의미였다. 선형 탐색으로 이 과정을 진행한다면 엄청난 시간이 소모되기 때문에 이분 탐색을 이용해야하는 문제였다.WA보다는
집합 자료형을 이용해서 교집합을 출력하는 intersection을 활용했다.intersection을 이용해서 편하게 코드를 작성했지만 시간이 많이 소요되어 별로 좋지 못한 코드라고 생각된다. 시간 문제를 해결할 수 있는 코드를 공부해봐야겠다.💡소요시간 : 3m
경우를 여러 가지로 잘 나눈다면 해결할 수 있는 문제였다.테스트케이스의 예제가 정상적으로 출력되어 별 문제가 없다고 생각했는데 4%에서 칼같이 WA가 출력되어 당황스러웠는데 질문게시판에 있는 반례를 찾아서 코드를 수정하니 정상적으로 출력되었다.💡소요시간 : 20m
모든 로프를 사용해야 할 필요는 없으며 임의로 몇 개의 로프를 골라서 로프들을 이용하여 들어올릴 수 있는 물체의 최대 중량을 구하는 문제다.테스트케이스의 예제를 설명하면 다음과 같다.2개의 로프가 주어져있고 각 로프가 들어올릴 수 있는 물체의 최대 중량은 각각 10kg
포켓몬의 이름과 번호를 딕셔너리를 이용해서 저장하고 출력했는데 계속 시간초과가 발생해서 어떤 방법을 써도 해결을 못하다가 결국 PyPy3로 바꿔서 제출했더니 정상적으로 출력되었다.💡소요시간 : 1h
from collections import deque를 사용해서 큐를 구현해야 시간초과가 발생하지 않는다.💡소요시간 : 2m
가능한 쌍을 나타내기 위해서 이중 반복문을 돌려 두 수의 최대공약수를 더해주는 방식으로 코드를 작성했다.💡소요시간 : 1m
①. 2부터 N까지 모든 정수를 적는다.②. 아직 지우지 않은 수 중 가장 작은 수를 찾는다. 이것을 P라고 하고, 이 수는 소수이다.③. P를 지우고 아직 지우지 않은 P의 배수를 크기 순서대로 지운다.④. 아직 모든 수를 지우지 않았다면 다시 2번 단계로 간다.10
투 포인터를 이용해서 해결하는 문제였다.코드1①. 만약 구간의 합이 M이라면? → 시작, 끝 포인터의 값을 1씩 증가②. 만약 구간의 합이 M보다 크다면? → 시작 포인터의 값을 1만큼 증가③. 만약 구간의 합이 M보다 작다면? → 끝 포인터의 값을 1만큼 증가코드2①
순열을 이용해서 코드를 작성했는데 해당하는 경우에 대해서 전부 탐색하다보니 시간초과가 발생한 것 같다. 그래서 30의 배수가 되기 위한 조건을 생각해서 다시 코드를 작성했다.30의 배수가 되기 위한 조건은 다음과 같다.①. 각 자릿수의 숫자들을 모두 더한 결과가 3으로
우선순위에 맞게 정렬을 해주기만 하면 쉽게 해결되는 문제였다.💡소요시간 : 1m
첫 번째 링을 한 바퀴 돌리면 나머지 링이 몇 바퀴 돌아가는지 구하는 간단한 문제였다.💡소요시간 : 1m
당연히 반복문으로 하나하나 처리해주면 시간초과가 발생할 것 같아서 다른 방법을 오랫동안 고민하고 종이에 써가면서 코드를 작성했다.해결 방법1 ~ 9까지의 수를 이용하여 만들어지는 수의 길이 : (9 - 1 + 1) 1 = 910 ~ 99까지의 수를 이용하여 만들어지는
슬라이싱을 이용해 간단히 해결할 수 있었다.💡소요시간 : 1m
대칭 차집합의 개수를 구하기 위해 symmetric_difference()를 이용해서 구할 수 있었다.💡소요시간 : 2m
처음에 테스트케이스를 기준으로 문제를 잘못 이해해서 시간이 오래 걸렸는데 질문게시판에 있는 문제 설명 이해를 보고 확실하게 이해가 되어 다시 처음부터 하나하나 되짚었던 문제였다.테스트케이스를 기준으로 설명하면 아래와 같다. \> 입력abc topabcoder \> 출
각 사이트의 주소와 비밀번호를 딕셔너리를 이용해서 저장한 다음 주소를 입력하면 해당하는 비밀번호를 출력하게끔 코드를 작성했다.💡소요시간 : 1m
딕셔너리를 이용해서 정리했다. 그 다음 lambda를 이용해서 딕셔너리 정렬을 우선순위에 따라서 적용한 다음 첫 번째 원소를 출력하게끔 코드를 작성했다.💡소요시간 : 2m
list를 이용한 방법보다는 딕셔너리를 이용한 방법이 더 좋을 것 같아 딕셔너리를 사용했다.💡소요시간 : 1m
N개의 국가를 여행하는 비행기가 최소가 되려면 (N-1)개의 비행기가 필요하다.아직 BFS/DFS에 익숙하지 않아 이것이 코딩 테스트다 with Python BFS 알고리즘 코드를 보고 공부하면서 코드를 작성했다. 그래프 이론에 대한 부분은 코딩 테스트에 자주 등장하니
끊어진 기타줄을 사기 위해 필요한 액수의 최솟값을 구하는 문제다. 이 때, 헷갈리면 안되는 점은 6줄 패키지만 살 수도 있고 낱개로 여러 줄을 살 수도 있지만 패키지와 낱개를 섞어서 살 수도 있다는 점이다.패키지의 가격을 기준으로 오름차순 정렬한 리스트 하나를 만들어주
해당하는 단어가 최대 몇 번 중복되지 않게 등장하는지 구하는 부분이 이 문제에서 주의할 점이라고 할 수 있다.해당하는 단어가 나오면 replace()를 이용해서 변환해줬고 최종 문자열에서 변환한 문자가 들어있으면 그것을 count()하는 방식으로 코드를 작성했다.💡소
스택을 이용해서 해결할 수 있을 것 같다고 생각했다.단어 위로 이차형 곡선을 그어 같은 글자끼리 쌍을 짓는데 이 때 선끼리 교차하면 좋은 단어가 아니다.💡소요시간 : 20m
전에 풀었던 체스판 다시 칠하기문제와 비슷하다고 생각해서 바로 삼중 반복문을 떠올릴 수 있었다.인덱스 에러를 많이 출력했고 종이에 적어가면서 거듭 수정하면서 문제를 힘겹게 풀었다.💡소요시간 : 40m
💡문제접근1 > 처음에는 규칙성을 찾지 않고 두 사람이 완벽하게 게임을 수행하는 과정을 코드로 작성했다. 💡코드1(메모리 : 30616KB, 시간 : 36ms) 💡문제접근2 > 각각의 경우를 비교했는데 돌의 개수가 홀수 개인 경우 항상 상근이가 마지막으로 돌을
반복되는 값이 리스트 안에 존재한다면 break를 실행시켜 멈춘다.그런 다음 반복되는 값이 나타나는 인덱스를 찾아 반복되는 부분을 제거해준다.💡소요시간 : 4m
동준이가 레벨을 난이도 순으로 배치했는데 이 때, 실수로 쉬운 레벨이 어려운 레벨보다 점수를 많이 받는 경우를 만들었다. 문제를 해결하기 위해서 각 레벨을 클리어할 때 받을 수 있는 점수가 증가하게 만들어야 한다. 따라서 맨 뒷부분에서부터 인접한 원소의 대소를 비교해
처음에는 조합을 사용할까 했는데 조합(combination)은 뽑아내는 수 r개를 범위로 받아올 수 없기 때문에 투 포인터를 이용해서 양쪽 끝에서부터 시작하여 조건문으로 경우를 나누어 각각의 실행문이 시작되도록 코드를 작성했다.💡소요시간 : 18m
이분 탐색을 이용해서 문제를 해결할 수 있었다.💡소요시간 : 8m
정말 쉬운 문제처럼 보여서 괜찮았는데 4트만에 정상적으로 출력되었다.질문게시판에 있는 반례 내용에서 깨달음을 얻어 코드를 거듭 수정하면서 작성했다.입력51 1 1 1 1출력5📌 테스트케이스의 결과를 확인해보자. 증가하는 수열의 길이는 5가 나오고 감소하는 수열의 길이
규칙성을 이용하는 피보나치 수열과 같은 문제였다.💡소요시간 : 1m
처음에는 좌우 끝 벽면에 부딪히는 경우, 상하 끝 벽면에 부딪히는 경우 움직인 방향의 반대 방향으로 이동할 수 있도록 bool변수를 선언해주어 각각의 경우를 나누어 코드를 작성했다. 하지만 시간초과가 발생했다. 왜냐하면 이 문제의 마지막에 있는 범위 때문이다.w(가로)
DP를 이용해서 문제를 해결할 수 있었다.dp 리스트를 작성해서 해당 소수와 연속된 소수들의 곱의 대소를 비교해 큰 수를 dp에 넣어 연속부분최대곱을 구할 수 있었다.DP 문제는 규칙성과 점화식을 잘 세우면 충분히 해결할 수 있는 쉬운 문제도 많다. 문제 보면 겁부터
permutations을 이용하여 문제를 간단히 해결할 수 있었다.순서를 고려해서 수를 만들고 이 수가 리스트에 들어있다면 continue, 들어있지 않다면 리스트에 수를 추가해준다.💡소요시간 : 2m
최대 부분배열의 문제였다. DP를 이용해서 수월하게 해결할 수 있었다.💡소요시간 : 1m
💡문제접근1 > 태수의 새로운 점수를 반복문으로 받아온 점수와 비교했을 때 태수의 새로운 점수가 더 높은 시점에 새로운 점수를 insert해주었다. 💡코드1 💡문제접근2 💡코드2 💡소요시간 : 37m
피보나치수열과 비슷한 형태이다. 규칙성을 이용하여 코드를 작성할 수 있었다.💡소요시간 : 1m
피보나치 수열에 대한 문제였다.💡소요시간 : 1m
N개의 정수 중 두 수를 뽑아 곱한 수들의 합을 구하는 간단한 문제다.하지만 N의 범위는 2 ≤ N ≤ 100,000이고 입력받는 정수들의 범위는 0이상 10,000이하이다. 일반적인 조합(combination)을 이용하게 된다면 시간초과가 발생한다. 뭔가 다른 규칙이
각 사람이 주려고 하는 팁을 내림차순으로 정렬한 다음 반복문을 돌려 (각 사람이 주려고 생각하는 팁 - (받은 등수 - 1))만큼의 팁이 음수라면 팁을 주지 않고 0이상이라면 팁을 주는 방식으로 코드를 작성했다.💡소요시간 : 2m
제품의 가격을 내림차순으로 정렬한 다음 세 개씩 슬라이싱하여 빼낸다.만약 세 개씩 짝지을 수 있다면 모든 유제품 가격을 더한 다음에 유제품 가격의 최솟값을 빼준다.만약 세 개씩 짝지을 수 없다면 모든 유제품을 돈을 주고 구매해야하므로 모두 더해준다.💡소요시간 : 4m
이중 반복문을 돌려서 점화식 표현대로 코드를 작성해서 쉽게 해결할 수 있었다.💡소요시간 : 4m
💡문제접근 > * 지민이가 뽑아내고자 하는 수의 위치를 중간 지점 위치를 기준으로 왼쪽에 있으면 왼쪽으로 한 칸 이동시키는 ②번 과정을 수행하고 만약 오른쪽에 있으면 오른쪽으로 한 칸 이동시키는 ③번 과정을 수행한다. 뽑아내고자 하는 수의 위치가 맨 처음에 위치하면
1 ~ N번까지의 참가자들이 토너먼트를 펼치는데 라운드를 거듭하면서 바뀌는 번호의 변화를 보고 코드를 작성할 수 있었다.입력16 8 9출력4참가자 번호 8번의 변화 : 8번 → 4번 → 2번 → 1번 → (결승에서 이길 경우)1번참가자 번호 9번의 변화 : 9번 → 5
(A - B) 차집합을 구하는 간단한 문제였다.💡소요시간 : 1m
딕셔너리를 이용해서 각 숫자를 key값으로 넣고 각 숫자의 영어 발음을 value값으로 넣는다.M이상 N이하의 정수를 반복문으로 받아오고 해당 숫자를 영어로 발음하는 경우를 문자열로 저장하고 문자열과 정수를 리스트에 저장한다.저장된 리스트를 key = lambda를 이
소가 농장에 도착한 시간과 농장에 도착해서 검문을 받는 시간을 리스트에 같이 저장하고 리스트를 1차적으로 도착시간을 기준으로 오름차순 정렬한 후 2차적으로 검문시간을 기준으로 오름차순 정렬을 수행했다.소가 도착한 시간과 검문을 받는 시간을 더한 총 시간이 그 다음 소가
sqrt, ceil 등 다양한 방법을 이용해봤지만 이 방법은 이런 방법으로 풀 경우 오차가 발생하게 되어 WA를 받게 된다. 따라서 정확한 연산을 위해서 이분 탐색으로 접근해야했다.
처음엔 되게 쉬운 문제라고 생각하고 바로 코드를 작성해서 테스트케이스와 똑같이 나와서 금방 가겠구나 했는데 WA를 받아서 정말 당황스러웠다.질문게시판에 있는 내용을 보고 고민했다. 달걀의 개수만큼 파는 것이라는 말이 눈에 들어왔다.또한 영양란이라고 속인 죄책감 때문에
for문을 통해서 읽은 문자가 숫자인지 아닌지를 판단해주는 isdigit()를 사용해서 코드를 작성할 수 있었다. isdigit()나 isnumeric()같은 숫자 판별 함수 테크닉을 알아두면 훨씬 수월하게 접근할 수 있을 것 같으니 활용하도록 하자.💡소요시간 : 9
고민을 많이 했던 문제였다. 갈피를 잡지 못해서 종이에 계속 그려가면서 규칙을 파악하다가 한참 지나고 나서야 규칙성을 찾을 수 있었다.입력WBBWWWBWBW위의 경우에서는 B 1개를 W로 바꿔주면 된다. 따라서 1이 답이다.출력1입력BBBBBBBBWBWBWB위의 경우에
1부터 999까지의 수 중에서 소수를 만족하는 수를 에라토스테네스의 체를 이용하여 걸러내어 소수 리스트에 따로 저장해주었다. 그 다음 삼중 반복문을 통해서 입력값 K를 세 개의 소수의 덧셈으로 구현할 수 있으면 리스트에 저장하고 가능한 경우가 여러 가지라면 세 소수를
사각형 영역 내에 있는 경우와 왼쪽 반원 영역에 있는 경우, 그리고 오른쪽 반원 영역에 있는 경우를 나누어 선수의 좌표 x, y가 그 영역 내에 존재한다면 1만큼 증가해주었다.💡소요시간 : 18m
이분 탐색을 활용해서 제출했는데 매우 큰 수를 처리하지 못해 WA를 받았다. 코드를 조금씩 수정해가면서 반례들을 체크했더니 전부 통과되어 AC를 받았다.💡소요시간 : 8m
각 가로수의 위치의 간격을 구한 다음 간격의 최대공약수를 구하고 각 간견을 비교해서 심을 가로수의 최소수를 구하는 방식으로 코드를 작성했다.💡소요시간 : 27m
앞에서부터 줄여나가면서 학생 번호가 전부 구분이 가능하다면 리스트에 길이를 저장하는 방식으로 코드를 작성했는데 계속 WA를 받았다. 학생 번호의 문자 길이는 모두 동일하다고 했으므로 이중 반복문과 슬라이싱을 이용해서 구분 가능하다면 리스트에 저장하고 구분 가능하지 않다
인접한 열에서 |가 연속적으로 나오거나 인접한 행에서 -가 연속적으로 나오는지 체크해서 바닥 장식의 개수를 증가시켜주면 된다.💡소요시간 : 17m
각각의 경우를 조건문으로 작성하여 계획했던대로 계산이 실행되도록 코드를 작성했지만 코드의 길이가 길어져 가독성도 떨어졌는데 Large의 경우에서 WA를 받아 결국 틀렸다. 그래서 코드의 길이를 대폭 줄여 다른 방식으로 코드를 작성하여 AC를 받았다.💡소요시간 : 10
split()을 적절히 사용해서 울음소리가 들어있는지 아닌지 판별해서 조건에 맞는 울음소리만을 출력하면 된다.💡소요시간 : 17m
처음엔 규칙을 찾지 못해서 어떻게 접근해야할지 고민을 많이 했다. N을 2진수로 변환한 다음 변환한 2진수를 3의 거듭제곱 형식으로 곱해주면 된다.💡소요시간 : 21m
리스트 자료구조를 사용했더니 시간초과가 발생했다. 그래서 딕셔너리 자료구조를 사용해서 문제를 해결했다.💡소요시간 : 17m
2중 반복문과 유클리드 호제법을 이용해 모든 두 수의 쌍의 최대공약수 중 가장 큰 값을 찾는 방법으로 코드를 작성했다.💡소요시간 : 4m
💡문제접근 > * 문제에 주어진 값의 범위를 보고 에라토스테네스의 체를 사용할지 아니면 일반적인 소수 판별 알고리즘을 사용할지 판단할 수 있어야 한다. 이 문제에서 주어진 n의 값의 범위는 0 ≤ n ≤ 4×10^9이다. 에라토스테네스의 체를 사용할 경우 메모리 초과
규칙을 찾으면 간단하게 해결할 수 있었던 문제였다.테스트케이스로 나온 33 79를 예로 들어 설명해보자.ex. 33번의 부모 노드는 16번, 16번의 부모 노드는 8번, 8번의 부모 노드는 4번... 이런 식으로 찾을 수 있는데 이 때 부모 노드는 현재 노드를 2로 나
CTP 회원들이 가지고 있는 펜의 수를 내림차순 정렬하면 빌린 회원의 수의 최솟값을 구할 수 있다.💡소요시간 : 4m
이 문제는 고려해야할 사항이 진짜 많았다.집합에 들어있는 원소가 정렬이 수행된 상태가 아니라는 점, 그리고 집합에 들어있는 원소를 오름차순 정렬했을때 맨 처음 원소의 값이 입력값 n보다 큰 수인 경우 등의 조건들을 전부 고려해야한다. 코너 케이스 및 이와 같은 조건들을
💡소요시간 : 27m
전구의 불이 이미 꺼져있는 상황이라면 굳이 다시 켤 필요가 없다.최소한의 횟수로 모든 전구를 끄려면 이미 전구가 켜져 있는 상태여야하며 전구가 켜져 있는 경우 스위치를 눌러 전구를 끄고 전구가 꺼져 있는 경우 스위치를 눌러 전구를 켜야한다.💡소요시간 : 4m
처음엔 4개의 함수를 별도로 만들어 우하향 대각선의 빙고 여부, 좌상향 대각선의 빙고 여부, 가로선의 빙고 여부, 세로선의 빙고 여부를 모두 체크해 빙고판의 라인의 개수가 3개 이상이 되는 시점일 때 값을 출력하는 방식으로 접근했지만 빙고 여부를 판별하는 함수의 작동에
제 1 공개키 제 2 공개키는 제 1 공개키의 단어 재배치입력A B C DD A B CC B A P출력B A P CKey : 제 2 공개키, Value : 암호문사전 : {"D" : "C", "A" : "B", "B" : "A", "C" : "P"} A → B, B →
문제 그대로 코드를 작성하면 해결 가능💡소요시간 : 11m
31을 외치는 순간 외친 사람이 게임에서 진다.시온이가 이기려면 시온이가 30을 외쳐야 한다는 것이다. 이를 이용해서 코드로 작성하면 해결할 수 있다.💡소요시간 : 11m
BFS로 탐색을 수행하는 코드로 방향을 잡았는데 문제는 오른쪽 방향, 아래 방향으로만 이동이 가능하다는 것이다.두 가지 경우에 대해서만 BFS를 수행할 수 있도록 BFS 코드를 수정해서 우하향 좌표에 도달할 수 있는지 여부를 체크했다.💡소요시간 : 24m
가능하면 정규 표현식을 이용해서 문제를 해결하려고 노력했다. 처음 사용하는 문법이라 그런지 익숙하지 않았다.List Comprehension을 사용해 소문자와 대문자, 하이픈이 포함된 단어를 모두 찾은 다음 찾은 단어에 대해서 소문자로 변환해 필터링을 거친 다음 길이를
파스칼의 삼각형을 구현하는 방법1) 삼각형의 둘레 부분을 먼저 1로 초기화한다.2) 점화식을 세워 안쪽 부분 값을 채워넣는다.💡소요시간 : 47m
간단한 시뮬레이션 문제였는데 잦은 IndexError와 WA 때문에 많이 시간을 허비했던 문제였다. 풀긴 풀었지만 오랜 시간이 걸려서 해결했다는 부분에서 많이 아쉬움을 느꼈던 문제였다.💡소요시간 : 1h 12m
가장자리를 따라서 \*이 출력되도록 설정하고 x축 방향 2칸, y축 방향 2칸을 옮겨서 다시 가장자리를 따라서 \*을 출력하게 만드는 재귀함수를 작성하는 문제다.💡소요시간 : 24m