Algotithms
-
문제 유제품을 3개 한 번에 산다면 그 중 가장 싼 것은 무료로 받을 수 있다. N팩의 유제품을 구입하려고 할 때 최소 비용으로 유제품 구입하기 1
[백준] 11508 2+1 세일문제 유제품을 3개 한 번에 산다면 그 중 가장 싼 것은 무료로 받을 수 있다. N팩의 유제품을 구입하려고 할 때 최소 비용으로 유제품 구입하기 1
2023.09.19 -
문제 NxN 보드 위에 블록들이 배치된 채로 게임이 시작된다. 플레이어는 1x1 크기의 검은 블록을 떨어뜨려 쌓을 수 있다. 검은 블록과 기존에 놓인 블록을 합해 속이 꽉 채워진 직사각형을 만들 수 있다면 그 블록을 없앨 수 있다. 검은 블록을 떨어뜨려 없앨 수 있는 블록 개수의 최댓값을 구하라 4 해당 인덱스가 위에서 블록을 떨어드릴 수 있는 자리인지 확인하기 위에서 블록이 막고 있는지 확인하기 1,2,5,8,9,18,20 번만 통과 (35점) -> 블록을 제거하는 순서에 따른 변화가 있을 것으로 예상됨 from collections import defaultdict # 직사각형 만들 수 있는지 확인 def check_form(block, blank) : for b in blank : if (b[0]-..
[2019 KAKAO BLIND RECRUITMENT] 블록 게임문제 NxN 보드 위에 블록들이 배치된 채로 게임이 시작된다. 플레이어는 1x1 크기의 검은 블록을 떨어뜨려 쌓을 수 있다. 검은 블록과 기존에 놓인 블록을 합해 속이 꽉 채워진 직사각형을 만들 수 있다면 그 블록을 없앨 수 있다. 검은 블록을 떨어뜨려 없앨 수 있는 블록 개수의 최댓값을 구하라 4 해당 인덱스가 위에서 블록을 떨어드릴 수 있는 자리인지 확인하기 위에서 블록이 막고 있는지 확인하기 1,2,5,8,9,18,20 번만 통과 (35점) -> 블록을 제거하는 순서에 따른 변화가 있을 것으로 예상됨 from collections import defaultdict # 직사각형 만들 수 있는지 확인 def check_form(block, blank) : for b in blank : if (b[0]-..
2023.09.06 -
문제 매칭점수가 가장 높은 웹페이지 구하기 (여러 개라면 그 중 번호가 가장 작은 것) 기본점수 = 검색어가 등장하는 횟수 (대소문자 무사) 외부 링크 수 = 다른 외부 페이지로 연결된 링크 개수 링크점수 = (해당 웹페이지로 링크가 걸린 다른 웹페이지의 기본점수 / 외부 링크 수)의 총합 매칭점수 = 기본점수 + 링크점수 1 형태 모든 url은 http://로만 시작 풀이 크게 4가지 작업으로 나눌 수 있다. 1) 해당 페이지의 url 찾기 re 모듈을 사용해 찾은 뒤, 해당 url의 인덱스를 저장한다. 2) body 부분에서 기본 점수 계산하기 re 모듈을 사용해 body 부분만 추출하고, 특수문자를 모두 공백으로 처리한 뒤, 매칭되는 단어 개수를 센다. 3) body 부분에서 외부 링크 추출하기 r..
[2019 KAKAO BLIND RECRUITMENT] 매칭 점수문제 매칭점수가 가장 높은 웹페이지 구하기 (여러 개라면 그 중 번호가 가장 작은 것) 기본점수 = 검색어가 등장하는 횟수 (대소문자 무사) 외부 링크 수 = 다른 외부 페이지로 연결된 링크 개수 링크점수 = (해당 웹페이지로 링크가 걸린 다른 웹페이지의 기본점수 / 외부 링크 수)의 총합 매칭점수 = 기본점수 + 링크점수 1 형태 모든 url은 http://로만 시작 풀이 크게 4가지 작업으로 나눌 수 있다. 1) 해당 페이지의 url 찾기 re 모듈을 사용해 찾은 뒤, 해당 url의 인덱스를 저장한다. 2) body 부분에서 기본 점수 계산하기 re 모듈을 사용해 body 부분만 추출하고, 특수문자를 모두 공백으로 처리한 뒤, 매칭되는 단어 개수를 센다. 3) body 부분에서 외부 링크 추출하기 r..
2023.09.04 -
문제 좌표가 주어졌을 때 전위 순회와 후위 순회의 결과 리턴하기 자식 노드의 y값은 항상 부모 노드보다 작다. V노드의 왼쪽 서브트리의 x값은 항상 V의 x값보다 작고 오른쪽 서브트리는 크다. 1
[2019 KAKAO BLIND RECRUITMENT] 길 찾기 게임문제 좌표가 주어졌을 때 전위 순회와 후위 순회의 결과 리턴하기 자식 노드의 y값은 항상 부모 노드보다 작다. V노드의 왼쪽 서브트리의 x값은 항상 V의 x값보다 작고 오른쪽 서브트리는 크다. 1
2023.09.03 -
문제 A가 B의 친구가 되려면 두 사람이 친구거나, A와 친구이고 B와 친구인 C가 존재하면 된다. 가장 친구의 수가 많은 사람의 친구 수 구하기 풀이 A와 거리가 1 또는 2인 노드 개수 구하기 import sys input = sys.stdin.readline N = int(input()) graph = [list(input().strip()) for _ in range(N)] cnt = [0] * N for i in range(N) : for j in range(N) : if i == j : continue is_friend = 0 # i와 j가 친구인 경우 if graph[i][j] == 'Y' : is_friend = 1 # i와 k가 친구고, k와 j가 친구인 경우 else : for k in..
[백준] 1058 친구문제 A가 B의 친구가 되려면 두 사람이 친구거나, A와 친구이고 B와 친구인 C가 존재하면 된다. 가장 친구의 수가 많은 사람의 친구 수 구하기 풀이 A와 거리가 1 또는 2인 노드 개수 구하기 import sys input = sys.stdin.readline N = int(input()) graph = [list(input().strip()) for _ in range(N)] cnt = [0] * N for i in range(N) : for j in range(N) : if i == j : continue is_friend = 0 # i와 j가 친구인 경우 if graph[i][j] == 'Y' : is_friend = 1 # i와 k가 친구고, k와 j가 친구인 경우 else : for k in..
2023.09.03 -
문제 N개의 컴퓨터는 신뢰하는 관계와 신뢰하지 않는 관계로 이뤄져 있다. A가 B를 신뢰하는 경우, B를 해킹하면 A도 해킹할 수 있다. N개의 컴퓨터들 간의 신뢰하는 관계가 주어질 때, 한 번에 가장 많은 컴퓨터를 해킹할 수 있는 컴퓨터의 번호 출력하기\ 1
[백준] 1325 효율적인 해킹문제 N개의 컴퓨터는 신뢰하는 관계와 신뢰하지 않는 관계로 이뤄져 있다. A가 B를 신뢰하는 경우, B를 해킹하면 A도 해킹할 수 있다. N개의 컴퓨터들 간의 신뢰하는 관계가 주어질 때, 한 번에 가장 많은 컴퓨터를 해킹할 수 있는 컴퓨터의 번호 출력하기\ 1
2023.09.03