본문 바로가기

컴퓨터

프로그래머스 - 기지국 설치 def solution(n, stations, w): answer = 0 coverRange = 2 * w + 1 underCover = [] start = stations[0] - w end = stations[0] + w # 간격 구하기 if start > 1: underCover.append([1, start]) for i in range(1, len(stations)): curStart, curEnd = stations[i] - w, stations[i] + w if end + 1 < curStart: underCover.append([end + 1, curStart]) end, start = curEnd, curStart if end < n: underCover.append([end + 1, n.. 더보기
릿코드 - Longest Substring Without Repeating Characters class Solution: def lengthOfLongestSubstring(self, s: str) -> int: if not s: return 0 if len(s) == 1 : return 1 r, l = 0, 0 words = dict() words[s[r]] = 1 answer = 0 while r < len(s) - 1: r += 1 if s[r] in words: while words[s[r]] == 1: words[s[l]] -= 1 l += 1 answer = max(answer, r - l + 1) words[s[r]] = 1 return answer 카카오와 라인 면접 준비에 한동안 올인하고 오랜만에 풀어봤다. 예전에는 포문 돌면서 무식하게 풀었는데 투포인터로 하니까 거의 9배 가까.. 더보기
CS 총정리 - 개발 배경지식 보호되어 있는 글입니다. 더보기
CS 총정리 - Web 편 보호되어 있는 글입니다. 더보기
CS 총정리 - 데이터베이스 편 보호되어 있는 글입니다. 더보기
CS 총정리 - 운영체제 편 보호되어 있는 글입니다. 더보기
프로그래머스 위클리 챌린지 - 9주차 [그래프] from collections import defaultdict def TreeSize(start, excep, linkInfo, n): q = list(filter(lambda x: x != excep , linkInfo[start])) visited = [True if i in q else False for i in range(n+1)] visited[start] = True cnt = len(q) + 1 while q: nextVal = q.pop() for i in linkInfo[nextVal]: if not visited[i]: q.append(i) visited[i] = True cnt += 1 return cnt def solution(n, wires): linkInfo = defaultd.. 더보기
카카오 2019 기출 - 실패율 def solution(N, stages): failRate = [] for i in range(1, N+1): cnt, rate = 0, 0 for j in stages: if j >= i: cnt += 1 if j == i: rate += 1 if cnt: failRate.append([i, rate / cnt]) else: failRate.append([i, 0]) #실패율 내림차순 정렬, 실패율 같으면 스테이지 번호로 오름차순 정렬 failRate = sorted(failRate, key = lambda x : (-x[1], x[0])) return list(map(lambda x : x[0],failRate)) cnt : 현재 스테이지에 도달한 플레이어 수 rate : 현재 스테이지에 머물러 있.. 더보기
2022 블라인드 카카오 1차 2차 코딩테스트 후기 9/18, 9/25 카카오 블라인드 1차 2차 코딩 테스트가 있었다. 준비는 프로그래머스에서 카카오 기출 풀면서 일주일 정도 준비했다. 10문제는 푼거같다. 작년에 처음 카카오 코테의 쓴맛을 보고 이번에 다시 도전해봤는데 생각보다 선방이었다. 오전 10시에 라인, 2시부터 카카오 거의 하루 7시간을 코테 보는데 써야했는데 나름 재밌었다. 라인 올솔해서 파이팅 넘치는 상태였어서 그런가.. 4번까지는 자료구조 좀 사용해서 구현으로 밀어붙였다. 4번같은 경우에는 테케 하나가 자꾸 삑나서 뭐때문일까.. 한참 고민했는데 초기값을 0 이 아닌 1로 변경했더니 코너케이스까지 다 맞추게 됐다. 시험 중에 빠르게 분석해본걸로는 내 로직에서 점수 계산 과정이 초기값을 0으로 했을때 놓치는 케이스가 있었다. 5번문제는 트리.. 더보기
백준 1890 점프 - [dp] import sys input = sys.stdin.readline N = int(input()) arr = [list(map(int, input().split())) for i in range(N)] dp = [[-1 for j in range(N)] for i in range(N)] def dfs(y, x): if y == N-1 and x == N-1 : return 1 if dp[y][x] == -1: dp[y][x] = 0 jump = arr[y][x] if y + jump < N: dp[y][x] += dfs(jump + y, x) if x + jump < N: dp[y][x] += dfs(y, jump + x) return dp[y][x] print(dfs(0,0)) dp를 최대한 활용해서 .. 더보기