목록파이썬 (40)
DevKim
https://programmers.co.kr/learn/courses/30/lessons/81302 코딩테스트 연습 - 거리두기 확인하기 [["POOOP", "OXXOX", "OPXPX", "OOXOX", "POXXP"], ["POOPX", "OXPXP", "PXXXO", "OXXXO", "OOOPP"], ["PXOPX", "OXOXP", "OXPOX", "OXXOP", "PXPOX"], ["OOOXX", "XOOOX", "OOOXX", "OXOOX", "OOOOO"], ["PXPXP", "XPXPX", "PXPXP", "XPXPX", "PXPXP"]] [1, 0, 1, 1, 1] programmers.co.kr [ 알고리즘 ] BFS [ 접근 방법 ] * 조건 * 1. 벽이 없는 경우에 2. 맨해튼 ..
https://www.acmicpc.net/problem/21610 21610번: 마법사 상어와 비바라기 마법사 상어는 파이어볼, 토네이도, 파이어스톰, 물복사버그 마법을 할 수 있다. 오늘 새로 배운 마법은 비바라기이다. 비바라기를 시전하면 하늘에 비구름을 만들 수 있다. 오늘은 비바라기 www.acmicpc.net [ 알고리즘 ] 단순구현 [ 접근 방법 ] 역시 삼성 문제는 문제 이해가 최우선이다. 조건이 복잡하고 길고 조건이 왔다갔다해서 조건 하나라도 빼먹으면 무한 디버깅에 빠지게 된다 (=나^^) 이 문제는 이동하는걸 어렵게 생각해서 시간을 많이 잡아먹었다. (x,y) 라고 놓고 생각하면 x가 음수방향으로 움직일 때, 양수방향일 때.. 생각으로 빠지게된다. 각 행과 열을 연결했으므로 동그랗게 연결..
https://programmers.co.kr/learn/courses/30/lessons/77885 코딩테스트 연습 - 2개 이하로 다른 비트 programmers.co.kr [ 알고리즘 ] 단순구현 [문제 접근] 문제가 어렵다기보단, 일일이 비교하면 시간초과가 나는 문제이다. 처음엔 1씩 더해서 각각의 이진수를 구하고, 끝자리부터 한자리씩 더해나가며 해결하려고 했으나 그렇게 되면 시간복잡도가 어마어마하게 커지게 된다. 이 문제는 짝수와 홀수를 나눠서 생각 할 필요가 있다. (1) 짝수 case 짝수의 경우 2진법으로 바꾸면, 무조건 끝에 0이 오게되어있다. 1~2자리수만 다르면 되므로, 맨 끝에 0을 1로만 바꿔주면된다. (2) 홀수 case 홀수의 경우 7=111 이런 경우를 대비하여, 맨 앞에 0..
https://programmers.co.kr/learn/courses/30/lessons/77485 코딩테스트 연습 - 행렬 테두리 회전하기 6 6 [[2,2,5,4],[3,3,6,6],[5,1,6,3]] [8, 10, 25] 3 3 [[1,1,2,2],[1,2,2,3],[2,1,3,2],[2,2,3,3]] [1, 1, 5, 3] programmers.co.kr [ 알고리즘 ] 단순구현 [문제 접근] 문제를 보자마자 사각형을 기준으로 회전한다는 점에서, 삼성 기출 로봇청소기가 생각났다. 시작하는 행과 열의 기준을 정해주고 그 만큼 사각형을 회전해주면 된다. 매번 회전에 해당하는 숫자들을 리스트에 담아주고, 그 중의 최소값을 결과값에 담아주면 된다. [코드] def solution(rows, column..
https://programmers.co.kr/learn/courses/30/lessons/76502 코딩테스트 연습 - 괄호 회전하기 programmers.co.kr Spring 공부한다고 잠시 놓고 있었던 1일 1 PS를 다시 시작했다. 그저께 부터 시작이었는데.. 삼성 기출을 3번은 돌리고 싶어서 이전에 풀지 않았던 문제들 풀려고 했다가 머리 털 다 뽑히고 한문제 겨우 풀어냈다.. 하하! 삼성 기출은 정말 어렵다 ㅠㅠ 한달 뒤에 나는 잘 풀어낼 수 있는 실력을 가졌으면 하는 바람.. 그래서 오늘은 프로그래머스 2단계에 새로운 문제들이 추가됐길래 가볍게 풀어보았다. [ 알고리즘 ] 단순구현 [ 자료구조 ] 큐,스택 [문제 접근] 말은 뭔가 복잡하게 써놨지만, 그냥 단순히 모두가 알고있는 올바른 괄호 ..
https://www.acmicpc.net/problem/1932 1932번: 정수 삼각형 첫째 줄에 삼각형의 크기 n(1 ≤ n ≤ 500)이 주어지고, 둘째 줄부터 n+1번째 줄까지 정수 삼각형이 주어진다. www.acmicpc.net [ 알고리즘 ] DP [ 문제 접근 ] ▶ 완전탐색의 구조인데? 경우의 수가 너무 큰데? 메모이제이션 가능하다 ! 매번 최대를 구해야하는 겹치는 부분문제 = DP 01. 입력 7 ->tri[0][0] 3 8 -> tri[1][0], tri[1][1] 8 1 0 -> tri[2][0] ,tri[2][1],tri[2][2] 2 7 4 4 ... 4 5 2 6 5 ... 02. 상태값 n행의 m열 -> dp[n][m] 03. 조건 1. tri[n][m] 이 해당 줄의 시작일..
https://www.acmicpc.net/problem/1874 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net [ 자료구조 ] 스택 [ 접근 방법 ] 나와야하는 target 숫자까지 모두 스택에 push해주고 target 숫자를 pop하여 꺼내준다. 만약 현재 target의 숫자가 이 전의 target 보다 작은 경우, 한번 pop해주었을 때 해당 값이 나오면 계속 진행하고 그렇지 않으면 불가능한 경우이므로 NO를 출력하고 ..
https://www.acmicpc.net/problem/2493 2493번: 탑 첫째 줄에 탑의 수를 나타내는 정수 N이 주어진다. N은 1 이상 500,000 이하이다. 둘째 줄에는 N개의 탑들의 높이가 직선상에 놓인 순서대로 하나의 빈칸을 사이에 두고 주어진다. 탑들의 높이는 1 www.acmicpc.net [ 자료구조 ] 스택 [ 접근 방법 ] 완전 탐색으로 구현하면 시간초과나는 문제이다. 처음에 완전 탐색으로 접근해서, 뒤에부터 앞에를 하나씩 탐색하니 시간초과가 발생하였다. 해결한 방법은, 스택을 이용하여 맨 앞부터 그 전에 스택이 담긴 원소들과 비교를한다. (1) 스택이 비어있는 경우 = 수신 받을 탑이 없다는것 (자신보다 높은 탑이 없다는 것) (2) 스택이 비어있지 않은 경우 현재의 높이와..