목록computer science (51)
IT STUDY LOG
# 문제 내용 프로그래머스: 폰켓몬 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr # 알고리즘 분류 해시 # 풀이 import java.util.*; class Solution { public int solution(int[] nums) { int result = 0; HashSet set = new HashSet(); for (int i = 0; i < nums.length ; i++){ set.add(nums[i]); } int possible = nums.length/2; if (possible < set.size()) { result = possi..
# 문제 내용 백준 12026번: BOJ 거리 12026번: BOJ 거리 스타트가 링크를 만나는데 필요한 에너지 양의 최솟값을 출력한다. 만약, 스타트가 링크를 만날 수 없는 경우에는 -1을 출력한다. www.acmicpc.net # 알고리즘 분류 다이나믹 프로그래밍 # 풀이 import sys input = sys.stdin.readline INF = sys.maxsize # 보도블럭 길이 1~n까지, 목적지는 n n = int(input()) # 보도블럭 data = list(input()) # B->O->J 순으로 밟아야하며 # k칸 점프하는데 필요한 에너지 양은 k*k dp = [INF] * n dp[0] = 0 for i in range(1, n): for j in range(i): if dat..
# 문제 내용 백준 16953번: A → B 16953번: A → B 첫째 줄에 A, B (1 ≤ A < B ≤ 109)가 주어진다. www.acmicpc.net # 알고리즘 분류 그래프 이론 그리디 알고리즘 그래프 탐색 너비 우선 탐색 # 풀이 1. top-down : BFS 이용 from collections import deque import sys input = sys.stdin.readline # a를 b로 바꾸는데 필요한 최소 연산 수 + 1 # 가능한 방법 1 : *2 # 가능한 방법 2 : 1을 수의 가장 오른쪽에 추가 a, b = map(int, input().split()) q = deque() q.append((a, 1)) while q: now, count = q.popleft() ..
# 문제 내용 백준 11058번: 크리보드 11058번: 크리보드 N = 3인 경우에 A, A, A를 눌러 A 3개를 출력할 수 있다. N = 7인 경우에는 A, A, A, Ctrl-A, Ctrl-C, Ctrl-V, Ctrl-V를 눌러 9개를 출력할 수 있다. N = 11인 경우에는 A, A, A, Ctrl-A, Ctrl-C, Ctrl-V, Ctrl-V, Ctrl-A, Ctrl-C, Ctrl www.acmicpc.net # 알고리즘 분류 다이나믹 프로그래밍 # 풀이 import sys input = sys.stdin.readline # 버튼 1 : 화면에 A를 출력한다. # 버튼 2 : Ctrl-A: 화면을 전체 선택한다 # 버튼 3 : Ctrl-C: 전체 선택한 내용을 버퍼에 복사한다 # 버튼 4 : ..
# 문제 내용 백준 2606번: 바이러스 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net # 알고리즘 분류 그래프 이론 그래프 탐색 너비 우선 탐색 깊이 우선 탐색 # 풀이 - 인접리스트 + BFS - 처음 풀이 때 인접 리스트로 입력받을 때 무방향그래프인 걸 고려하지 않고 노드 연결 정보가 미비되어 틀렸음 from collections import deque import sys input = sys.stdin.readline # 노드, 컴퓨터 수 (1