목록알고리즘 (288)
홍우진의 개발 일기장
문제 링크https://www.acmicpc.net/problem/3135풀이 코드a, b = map(int,input().split())bookmark = [int(input()) for _ in range(int(input()))]cnt = abs(a - b)for i in bookmark: su = abs(i - b) + 1 cnt = min(cnt, su)print(cnt)코드 해석abs를 이용한다.뺏을 때 값의 차이를 비교한다. 체감 난이도: ★☆☆☆☆
문제 링크https://www.acmicpc.net/problem/11478 풀이 코드s = input()tot = []for i in range(len(s)): for j in range(i, len(s)): tot.append(s[i:j+1])print(len(set(tot)))코드 해석문자열을 모두 받은 후set 자료형을 이용하여 중복을 지우고 길이를 출력한다. 체감 난이도: ★☆☆☆☆
문제 링크https://www.acmicpc.net/problem/2738 풀이 코드A, B = [], []N, M = map(int, input().split())for row in range(N): row = list(map(int, input().split())) A.append(row)for row in range(N): row = list(map(int, input().split())) B.append(row) for row in range(N): for col in range(M): print(A[row][col] + B[row][col], end=' ') print()코드 해석코드가 길지만 간단한 사칙연산 문제이다.체감 난이도: ☆☆☆☆☆
문제 링크https://www.acmicpc.net/problem/18111풀이 코드import sysn, m, b = map(int, input().split())graph = [list(map(int, input().split())) for _ in range(n)]idx = 0dap = sys.maxsizefor floor in range(257): maxb, minb = 0, 0 for i in range(n): for j in range(m): if graph[i][j] > floor: # 블록이 현재 층보다 높다면 maxb += graph[i][j] - floor else: # 아니라면 ..
문제 링크https://www.acmicpc.net/problem/2635 풀이 코드n = int(input())dap = [n]for i in range(1, n+1) : li = [n, i] while li[-1] >= 0 : li.append(li[-2] - li[-1]) li.pop() if len(dap) 코드 해석브루트포스 알고리즘을 사용하였다. 체감 난이도: ★★☆☆☆
문제 링크https://www.acmicpc.net/problem/11576풀이 코드a, b = map(int,input().split())m = int(input()) - 1n, ans = 0, []for i in map(int,input().split()): n += i * a ** m m -= 1 while n: ans.append(n % b) n //= bprint(*ans[::-1])코드 해석a진법을 10진법으로 변환 한 뒤 다시 b진법으로 변환한다. 체감 난이도: ★☆☆☆☆
문제 링크https://www.acmicpc.net/problem/24313 풀이 코드a1, a2 = map(int, input().split())c = int(input())n0 = int(input())if a1 * n0 + a2 코드 해석a0 와 a1은 음수가 될 수도 있다. a1 체감 난이도: ★☆☆☆☆
문제 링크https://www.acmicpc.net/problem/3273풀이 코드n = int(input())su = sorted(list(map(int,input().split())))x = int(input())cnt, st, end = 0, 0, n - 1while st x: # x보다 temp가 크면? end -= 1 # end를 한 칸 땡기기(값 줄이기). elif temp 코드 해석투 포인터 알고리즘을 활용하였다. 받은 리스트의 시작값과 끝값을 각각 기준점으로 삼은 뒤,더하면서 x와 비교하여 수가 작다면 시작값을 옮기고, 크다면 끝값을 옮긴다. 체감 난이도: ★★☆☆☆