문제https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV14QpAaAAwCFAYi SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com 풀이단순 무식하게 전체를 검사하면 된다.하나의 행에 회문이 몇개인지, 하나의 열에 회문의 몇개인지 3중 for문을 사용해 가로 한번 세로 한번 카운트해서 풀었다. 리팩터링은 다음과 같이 진행했다.list(zip(*wordBoard))를 사용해 전치한 행렬을 생성하여 사용하기문자가 회문인지 검사할때는 절반만 검사하기isPalindrome 플래그 대신 all()을 사용하여 모두 만족하는지 검사하기 ..
문제https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV19AcoKI9sCFAZN SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com 풀이0으로 채워진 문자열과 앞에서부터 한 문자씩 같은지 검사하되 다르다면 뒷부분을 1로 채워버리고 검사를 이어나가는 방식으로 생각하면 된다. (실제로 0으로 채워진 리스트를 만들어서 비교할 필요는 없고 숫자 하나에 기록한다.) "0100111"이라고 가정하고 0과 비교를 시작하는 예제0 -> 0과 비교시 같음1 -> 0과 비교시 다름, 다음 숫자부터 1과 비교, 정답 1 증가0 -> 1과 비교시..
문제https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AZD8K_UayDoDFAVs SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com 풀이더해지는 숫자가 클수록 이득이다. 임계값 N을 초과할때까지 A, B중 작은수에 큰 수를 더하면서 더하는 횟수를 세면 된다. 정답 코드T = input()testCases = [list(map(int, input().split())) for _ in range(int(T))]for testCase in testCases: answer = 0 while testCase[2] >= m..
문제https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PobmqAPoDFAUq SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com 풀이숫자는 1부터 (N*N)번까지 1씩 증가하며 입력되고 우, 하, 좌, 상 순서로 벽이나 이미 작성된 숫자를 만나면 방향을 이동하는것에 주의하면서 로직을 작성하면 된다. 우선 달팽이 숫자들을 저장할 N*N 리스트를 0으로 초기화 해놓는다. move = [[0, 1], [1, 0], [0, -1], [-1, 0]] # 우, 하, 좌, 상move에 각 방향별 더해줄 y, x값을 미리 리스트로 선언한..