분류 전체보기 86

재귀 DFS 문제: 단어 최소 사용 개수 구하기

그동안 풀어왔던 재귀문제는 level의 수가 정해져있었다. 하지만 이 문제는 level의 수가 정해져있지 않아서 처음에 생각을 잘 해야한다. 종료조건을 생각해보면 1) 재귀를 돌면서 만들어진 글자가 내 목표글자보다 길다면 return (목표글자보다 길어졌다면 계속 뒤에 글자를 추가해봤자 목표글자가 안됨) 2) 만들어진 글자가 목표글자랑 똑같다면, 몇개 글자 붙힌건지 출력 두번째 종료조건에 맞는 조건을 먼저 써줬다. cnt(내가 몇개 글자 이어붙힌건지 표현하는 변수)를 매개변수로 설정하였다. arr = ['BTS', 'SBS', 'BS', 'CBS', 'SES'] path = ['']*30 word = input() def recur(level, cnt): if ''.join(path)==word: pri..

SWEA 1210 사다리

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV14ABYKADACFAYh SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 코드를 구현하기 전에 해야하는 생각 이 말은 내가 도달해야하는 지점 (X표시 지점)이 고정되어있다는 것을 의미한다. 지금은 시작점:? 끝점: X표시 이니까 고정된 끝점에서 사다리를 따라가면 마지막에 내가 원하는 시작점에 도달할 수 있겠다고 생각하면 된다. 따라서 맨 끝점에 있는 x좌표를 먼저 찾아주기로 했다 T = 10 for tc in range(1, T+1): n = int(input()) la..

SWEA 1216 회문2

https://swexpertacademy.com/main/talk/solvingClub/problemView.do?solveclubId=AYJ7KE5qKy8DFASv&contestProbId=AV14Rq5aABUCFAYi&probBoxId=AYKQQmC6iwUDFAVG&type=PROBLEM&problemBoxTitle=String&problemBoxCnt=7 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 풀기 전에... https://gkim1011.tistory.com/15 SWEA 4861 회문 https://swexpertacademy.com/main/talk/solvingClub/problemVie..

SWEA 1221 GNS

https://swexpertacademy.com/main/talk/solvingClub/problemView.do?solveclubId=AYJ7KE5qKy8DFASv&contestProbId=AV14jJh6ACYCFAYD&probBoxId=AYKQQmC6iwUDFAVG&type=PROBLEM&problemBoxTitle=String&problemBoxCnt=7 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 2중 for문을 돌면서 (names가 바깥쪽 for문) names인덱스랑 같은것을 답 배열에 append 하기. a가 하나 증가할 때마다 새로 arr를 전체 다 순회하기 때문에 모든 요소가 빠지지 않고 들..

SWEA 4861 회문

https://swexpertacademy.com/main/talk/solvingClub/problemView.do?solveclubId=AYJ7KE5qKy8DFASv&contestProbId=AX8BH7eaUocDFARO&probBoxId=AYKQQmC6iwUDFAVG&type=USER&problemBoxTitle=String&problemBoxCnt=7 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 가로줄에 회문이 있는 경우와 세로줄에 회문이 있는 경우를 다르게 풀어야하는 문제였다. 세로줄에 회문이 있는 경우, 가로줄 for문 순서를 단순히 바꾸면 아무 일도 일어나지 않는다. 그래서 나는 y축이랑 x축을 ..

SWEA 2805 농작물 수확하기

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV7GLXqKAWYDFAXB SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 풀이 key point 1) 마름모를 반으로 나눠서 0부터 1/2 지점까지 파란칸들의 합, 그리고 1/2지점 다음 칸들부터 끝까지의 합을 따로 구하려고 했다. n = 5 일때랑 n=7인 경우 두개만 생각해봐도 법칙이 찾아진다.. 다행 T = int(input()) for tc in range(1, T+1): n = int(input()) arr = [list(map(int, input())) for..

SWEA 13704 달팽이 숫자

https://swexpertacademy.com/main/talk/solvingClub/problemView.do?solveclubId=AYJ7KE5qKy8DFASv&contestProbId=AX73Fb0axQ4DFARO&probBoxId=AYKImykKjWgDFASv&type=USER&problemBoxTitle=list2&problemBoxCnt=5 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 풀이 key point들 1) while True: -> break 조건 써줘야함 break 조건: n*n보다 입력값이 커질때 2) for문을 사용하지 않으니까 directx, directy의 다음 index로 ..

SWEA 13565 전기버스

https://swexpertacademy.com/main/talk/solvingClub/problemView.do?solveclubId=AYJ7KE5qKy8DFASv&contestProbId=AX7UKy7KaMwDFAVm&probBoxId=AYJ7KE5qKzADFASv&type=USER&problemBoxTitle=list1&problemBoxCnt=5 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 풀이방법 풀이 key point) 최소 횟수로 충전을 해서 끝까지 가려면 한번 갈때 배터리가 감당할 수 있는 최대 칸으로 가면 좋다. 즉, 지금칸+K번째칸부터 확인 후, 그 곳에 충전기가 없으면 지금칸+(K-1)..

SWEA 13569 그래비티 풀이

https://swexpertacademy.com/main/talk/solvingClub/problemView.do?solveclubId=AYJ7KE5qKy8DFASv&contestProbId=AX7UNdWaadEDFAVm&probBoxId=AYJ7KE5qKzADFASv&type=USER&problemBoxTitle=list1&problemBoxCnt=5 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 의도치 않게 오래걸린 문제였다. 일단 문제를 읽을때 굉장히 주의해야하는게 있는데 상자의 높이가 0부터 M까지라고 해놓고 M에 대한 조건을 주지 않았다는 점을 주의해야한다. 이 부분을 간과했다가 보이지 않는 tc에..