파이썬 알고리즘 60

백준 10157 자리배정 파이썬 풀이

https://www.acmicpc.net/problem/10157 10157번: 자리배정 첫 줄에는 공연장의 격자 크기를 나타내는 정수 C와 R이 하나의 공백을 사이에 두고 차례대로 주어진다. 두 값의 범위는 5 ≤ C, R ≤ 1,000이다. 그 다음 줄에는 어떤 관객의 대기번호 K가 주어진다. www.acmicpc.net 처음에 이렇게 생긴 좌석배치를 보고 파이썬 2차원 배열은 왼쪽 위부터 arr[0][0] 이니까 좌석을 뒤집어서 요런식으로 배열을 만든 후 설계를 했다. 일단 저렇게 숫자를 배치하는 문제는 SWEA의 달팽이 문제와 상당히 흡사하다. https://gkim1011.tistory.com/11 SWEA 13704 달팽이 숫자 https://swexpertacademy.com/main/ta..

백준 2628 종이자르기 파이썬 풀이

https://www.acmicpc.net/problem/2628 2628번: 종이자르기 첫줄에는 종이의 가로와 세로의 길이가 차례로 자연수로 주어진다. 가로와 세로의 길이는 최대 100㎝이다. 둘째 줄에는 칼로 잘라야하는 점선의 개수가 주어진다. 셋째 줄부터 마지막 줄까지 한 www.acmicpc.net 점선의 숫자들의 절댓값 차가 결국에는 잘린 종이의 넓이라는 점을 생각하였다. 가로 자르는 좌표 리스트, 세로 잘르는 좌표 리스트를 하나씩 만들고, 숫자를 각각 리스트에 넣었다. 그 다음에 끝값 (0이랑 넓이, 0이랑 높이)를 넣고 sort 해준다. 자른 부분의 좌표 차이의 곱이 넓이이다. width, height = map(int, input().split()) cut_number = int(input..

SWEA 1979 어디에 단어가 들어갈 수 있을까 파이썬 풀이

https://swexpertacademy.com/main/talk/solvingClub/problemView.do?solveclubId=AYJ7KE5qKy8DFASv&contestProbId=AV5PuPq6AaQDFAUq&probBoxId=AYKLHkm6QIwDFAVG&type=PROBLEM&problemBoxTitle=3.+list+%EC%B6%94%EA%B0%80%EB%AC%B8%EC%A0%9C&problemBoxCnt=4 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 배열에서 딱 K길이만큼 1인 것들을 찾아야한다. total을 총 단어 개수로 하고, cnt를 그 줄의 1의 개수로 두면서 계속 초기화를 ..

백준 2578 빙고 파이썬 풀이

https://www.acmicpc.net/problem/2578 2578번: 빙고 첫째 줄부터 다섯째 줄까지 빙고판에 쓰여진 수가 가장 위 가로줄부터 차례대로 한 줄에 다섯 개씩 빈 칸을 사이에 두고 주어진다. 여섯째 줄부터 열째 줄까지 사회자가 부르는 수가 차례대로 www.acmicpc.net 몇번째 번호를 불렀을 때 빙고가 3개 이상 완성되는지 찾는 문제이다. MC가 번호를 불러줄때마다 해야할 일이 2가지 있다. 1) MC가 불러준 번호에 X표시하기 2) 빙고판에 빙고 몇개 생겼는지 확인하기 그래서 나는 이 두 과정을 각각의 함수에 담아서 했다. 일단 처음에 입력 데이터를 보면 11 12 2 24 10 16 1 13 3 25 6 20 5 21 17 19 4 8 14 9 22 15 7 23 18 #여..

SWEA 4893 이진탐색 (list1)

https://swexpertacademy.com/main/talk/solvingClub/problemView.do?solveclubId=AYJ7KE5qKy8DFASv&contestProbId=AX73CRX6xEADFARO&probBoxId=AYKImykKjWgDFASv&type=USER&problemBoxTitle=list2&problemBoxCnt=5#none SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 사람마다 페이지를 찾는 과정을 한번 거쳐야 했기 때문에, 함수로 답을 구현해보았다. 내가 원하는 페이지를 입력받고, mid를 바꾸는 이진탐색을 하며, 결국 mid가 내가 원하는 페이지일때 몇번시도했는지를..

SWEA 전기버스 풀이2: 재귀 활용해서 풀기

https://gkim1011.tistory.com/10 SWEA 13565 전기버스 https://swexpertacademy.com/main/talk/solvingClub/problemView.do?solveclubId=AYJ7KE5qKy8DFASv&contestProbId=AX7UKy7KaMwDFAVm&probBoxId=AYJ7KE5qKzADFASv&type=USER&problemBoxTitle=list1&problemBoxCnt=.. gkim1011.tistory.com 요즘 재귀문제를 많이 풀어서 그런지 bucket으로 말고 재귀로도 이 문제를 풀 수 있겠다는 생각을 했다. 지금 있는 칸을 매개변수 now로 받아오고, 재귀로 들어가면서 now를 계속 바꿔주는 코드이다. T = int(input(..

SWEA 그래비티 풀이2

https://gkim1011.tistory.com/9 SWEA 13569 그래비티 풀이 https://swexpertacademy.com/main/talk/solvingClub/problemView.do?solveclubId=AYJ7KE5qKy8DFASv&contestProbId=AX7UNdWaadEDFAVm&probBoxId=AYJ7KE5qKzADFASv&type=USER&problemBoxTitle=list1&problemBoxCnt=.. gkim1011.tistory.com 저번에는 문제에서 주어진 그림을 참고하여, 블럭 하나하나를 2차배열 bucket에 담은 후 중력 작용을 확인했었다. 하지만 굳이 bucket으로 안풀어도 되는 문제였다. 일단 생각해야 하는 것은 낙차가 가장 크게 생길 수 있는..

재귀 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..