알고리즘

알고리즘/Python

[python] 프로그래머스 - 스킬 트리

출처 : 프로그래머스, https://programmers.co.kr/learn/courses/30/lessons/49993 코딩테스트 연습 - 스킬트리 programmers.co.kr 더보기 먼저, 생각해야 할 부분 1. 이전 것이 무조건 전에 포함되어야한다. 단순히 스킬 트리 상에 존재하는 것이 스킬 순서만 지키면 되는게 아니라 CBD에서 B가 포함될 경우 C도 존재하여야 한다. 풀이 def solution(skill, skill_trees): skill_set = set([char for char in skill]) count = 0 for tree in skill_trees: order = ''.join([char for char in tree if char in skill_set]) if ski..

알고리즘/Python

[python] 프로그래머스 - 여행 경로

출처 : 프로그래머스, https://programmers.co.kr/learn/courses/30/lessons/43164 코딩테스트 연습 - 여행경로 [["ICN", "SFO"], ["ICN", "ATL"], ["SFO", "ATL"], ["ATL", "ICN"], ["ATL","SFO"]] ["ICN", "ATL", "ICN", "SFO", "ATL", "SFO"] programmers.co.kr 그냥 음 내 취향인 문제다. 틀은 잘 짰는데 예외 처리에서 오래 걸렸다. 더보기 먼저, 생각해야 할 부분 1. 같은 티켓이 2장일 수 있다. #Input [["ICN", "SFO"], ["SFO", "ICN"], ["ICN", "SFO"]] #Output ["ICN", "SFO", "ICN", "SFO"]..

알고리즘/Python

[python] 백준 1913 - 달팽이

출처 : 백준, https://www.acmicpc.net/problem/1913 1913번: 달팽이 N개의 줄에 걸쳐 표를 출력한다. 각 줄에 N개의 자연수를 한 칸씩 띄어서 출력하면 되며, 자릿수를 맞출 필요가 없다. N+1번째 줄에는 입력받은 자연수의 좌표를 나타내는 두 정수를 한 칸 띄어서 www.acmicpc.net 와 이제 실버 1이다~ 더보기 풀이 #정사각형 테두리 채우기 point = None def fillBorder(left_top, right_bottom, map, target): global point s_i, s_j = left_top e_i, e_j = right_bottom length = (e_j - s_j + 1) * 4 - 4 number = (e_j - s_j + 1)*..

알고리즘/Python

[python] 백준 4396 - 지뢰 찾기

출처 : 백준, https://www.acmicpc.net/problem/4396 4396번: 지뢰 찾기 지뢰찾기는 n × n 격자 위에서 이루어진다. m개의 지뢰가 각각 서로 다른 격자 위에 숨겨져 있다. 플레이어는 격자판의 어느 지점을 건드리기를 계속한다. 지뢰가 있는 지점을 건드리면 플레이어 www.acmicpc.net 더보기 풀이 def makeNumber(current, map, output): i, j = current di = [0, 1, -1, 0, -1, -1, 1, 1] dj = [1, 0, 0, -1, -1, 1, -1, 1] mine = 0 if map[i][j] == '*': return True for index in range(8): ni = i + di[index] nj = ..

알고리즘/Python

[python] 백준 21608 - 상어 초등학교

출처 : 백준, https://www.acmicpc.net/problem/21608 21608번: 상어 초등학교 상어 초등학교에는 교실이 하나 있고, 교실은 N×N 크기의 격자로 나타낼 수 있다. 학교에 다니는 학생의 수는 N2명이다. 오늘은 모든 학생의 자리를 정하는 날이다. 학생은 1번부터 N2번까지 번호 www.acmicpc.net 와 이 코드 156ms로 백준에서 Python3 풀이 중에 22등 했다. 대박 조건 설명이 너무 어려워서 간단하게만 설명하면, 학생들은 자신이 좋아하는 친구 4명을 선정하여 제출하였습니다. 우리는 다음과 같은 규칙에 따라 학생들의 자리를 선정해야합니다. 1. 각 자리를 기준으로 상하좌우에 내가 좋아하는 친구가 많이 앉아있는 자리를 우선합니다. 2. 좋아하는 친구가 많이 ..

알고리즘/Python

[python] 프로그래머스 - 단어 변환

출처 : 프로그래머스 코딩테스트 연습, https://programmers.co.kr/learn/courses/30/lessons/43163 코딩테스트 연습 - 단어 변환 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 programmers.co.kr 이 문제는 오답인 풀이가 정답으로 통과되는 경우가 있다. 잘 체크해 볼 것. 더보기 BFS 풀이 : 틀림 def calcDistance(x, y): count = 0 for i in range(len(x)): if x[i] != y[i]: count += 1 return count..

알고리즘/Python

[python] 프로그래머스 - 네트워크

출처 : 프로그래머스 코딩테스트 연습, https://programmers.co.kr/learn/courses/30/lessons/43162 코딩테스트 연습 - 네트워크 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있 programmers.co.kr 더보기 BFS 반복문 풀이 def solution(n, computers): #BFS visited = [False for _ in range(n)] count = 0 stack = [] for index in range(n): if not visited[index]: count += 1 stack.append(ind..

알고리즘/기타

백준 허브를 통해 깃허브에 풀이 자동 업로드 하기

알고리즘 문제를 풀다보면 깃허브에 일일이 코드를 올리는 것이 귀찮을 때가 있습니다. 물론 커밋을 관리한다거나 신경을 많이 쓰는 입장에서는 일일이 올리는게 꼼꼼하고 좋을 수 있습니다만, 저 같은 경우는 이를 매우 귀찮아해서 실제로 깃허브에 올라간 풀이는 많지 않습니다. 문제를 풀고 별도로 올리는 과정을 수행해야한다는게 그다지 매끄럽지 못하지 않나요? 일단 저는 그렇습니다. 모든 발명의 시작은 귀찮음인 만큼, 어떤 개발자분께서 풀이 코드를 자동으로 업로드 해주는 크롬 익스텐션을 만들었습니다. 바로 이름도 위대한 '백준 허브'입니다. 비슷한 PS 사이트인 LeetCode의 LeetHub에서 파생된 프로젝트인데 이 익스텐션을 사용하면, 알고리즘 사이트에서 문제를 품과 동시에 내가 지정한 레퍼지토리로 코드가 자동..

알고리즘/Python

[python] 프로그래머스 - 2 x n 타일링

출처 : 프로그래머스 코딩테스트 연습, https://programmers.co.kr/learn/courses/30/lessons/12900 코딩테스트 연습 - 2 x n 타일링 가로 길이가 2이고 세로의 길이가 1인 직사각형모양의 타일이 있습니다. 이 직사각형 타일을 이용하여 세로의 길이가 2이고 가로의 길이가 n인 바닥을 가득 채우려고 합니다. 타일을 채울 때는 programmers.co.kr 더보기 첫 번째 풀이 : 시간초과 def solution(n): dp = [1 for _ in range(n+1)] dp[2] = 2 for i in range(3, n+1): dp[i] = dp[i-1] + dp[i-2] return dp[n] % 1000000007 풀어본 문제라고 생각하고 아무 생각없이 풀..

알고리즘/Python

[python] 프로그래머스 - N-Queens

출처 : 프로그래머스 코딩테스트 연습, https://programmers.co.kr/learn/courses/30/lessons/12952 코딩테스트 연습 - N-Queen 가로, 세로 길이가 n인 정사각형으로된 체스판이 있습니다. 체스판 위의 n개의 퀸이 서로를 공격할 수 없도록 배치하고 싶습니다. 예를 들어서 n이 4인경우 다음과 같이 퀸을 배치하면 n개의 퀸은 programmers.co.kr 더보기 풀이 stack = [] #퀸의 좌표를 넣는 공간. answer = 0 #방법의 수 def check(location): mx, my = location for queen in stack: x, y = queen if mx == x or my == y: return False if abs((mx - x..

알고리즘/Python

[python] 백준 16926 - 배열 돌리기 1

출처 : 백준, 더보기 풀이 def Solution(arr, TL, BR, R, bound_length): x1, y1 = TL x2, y2 = BR x = x1 y = y1 dx = [0, 1, 0, -1] dy = [1, 0, -1, 0] index = 0 bound_list = [] for _ in range(bound_length): if x == x2 and y == y1: index+=1 elif x == x2 and y == y2: index+=1 elif x == x1 and y == y2: index+=1 bound_list.append(arr[x][y]) x += dx[index] y += dy[index] bound_list = bound_list[R :] + bound_list[: ..

알고리즘/Python

[python] 프로그래머스 - 행렬 테두리 회전하기

출처 : 프로그래머스 코딩테스트 연습, 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 오랜만에 돌아온 프로그래머스! 사실 요즘 코딩 테스트를 쳐보려고 마구자비로 자소서를 넣고 후기들을 비공개 포스트로 올리고 있는데 모 회사의 코딩테스트 문제에 비슷한 문제가 출제되어서 풀어보았다. 굉장히 쉬워보이는데 실수할 여지가 많다......... 프로그래머스도 다 풀어봐야겠다.......... 더보기..

제주도랏맨
'알고리즘' 카테고리의 글 목록 (8 Page)