본문 바로가기

모두보기

[코딩인터뷰] 백준 2616번 소형기관차 DP & 누적 합 처음엔 N 개 중 간격 M 을 두고 3 개를 뽑는 모든 경우의 수를 검토하는 방법으로 풀었더니 '시간 초과' 발생했고 이 글을 참고해서 다시 풀었습니다. 핵심 코드는 dp[x][y] = max(dp[x][y-1], dp[x-1][y-M] + (s[y] - s[y-M])) 로 매 계산마다 이전 최대값과 비교하기 때문에 마지막에 답이 나오게 됩니다. 코드를 바로 이해하기 어려워서 디버거 변수를 노트에 적어가며 해보다 보니 이해하게 되었고 아래 코드로 정답을 맞출 수 있었습니다. import sys readline = sys.stdin.readline read = sys.stdin.read N = int(readline()) T = [0] for t in map(int, rea..
[코딩인터뷰] 백준 3020번 개똥벌레 Prefix Sum 누적 합 import sys N, H = map(int, input().split()) MAX = H + 2 top = [0] * MAX bottom = [0] * MAX for k in range(N): v = int(input()) if k % 2 == 1: bottom[v] += 1 else: top[v] += 1 total_top = [0] * MAX total_bottom = [0] * MAX for i in reversed(range(1, H+1)): total_bottom[i] = bottom[i] + total_bottom[i + 1] total_top[i] = top[i] + total_top[i + 1] mini = 200001 count = 1 total = [0]..
[코딩인터뷰] 백준 16437번 16437번 양 구출 작전 문제는 "파이썬으로 풀지 말라는게 아닐까" 라는 느낌의 채점 기준이었습니다. 로직이 틀리지 않은거 같은데 왜 통과를 못하고 '메모리 초과' 가 뜰까 싶어서 C++ 정답 코드를 둘러봤는데 로직이 동일한 정답이 있었습니다. 그래서 '어? 환경설정 문젠가?' 싶어서 일단 C++ 정답으로 문제 정답 처리하고 파이썬으로 통과된 코드를 보고 환경설정을 좀 했더니 통과가 되었습니다. 정리하자면, 'PyPy 3' 로 제출하면 '메모리 초과' 가 발생합니다. 'Python 3' 로 제출하면 '시간 초과' 가 발생합니다. PyPy3 메모리 초과는 아무래도 BFS 방식으로 풀어야 해결할 수 있어 보이고, Pyth..
[FE] 브라우저 렌더링 Browser rendering - 3단계 레이아웃 'layout' 브라우저 렌더링 Browser rendering 브라우저는 'content (콘텐츠)' 를 'rendering (렌더링)' 해서 'pixel image(픽셀 이미지)' 즉 화면을 만듭니다. 브라우저 렌더링 Browser rendering - 0단계 소개 브라우저 렌더링 Browser rendering - 1단계 파싱 'parse' 브라우저 렌더링 Browser rendering - 2단계 스타일링 'style' 브라우저 렌더링 Browser rendering - 3단계 레이아웃 'layout' 브라우저 렌더링 Browser rendering - 4단계 페인팅 'paint' 브라우저 렌더링 Browser r..
[FE] 브라우저 렌더링 Browser rendering - 2단계 스타일링 'style' 브라우저 렌더링 Browser rendering 브라우저는 'content (콘텐츠)' 를 'rendering (렌더링)' 해서 'pixel image(픽셀 이미지)' 즉 화면을 만듭니다. 브라우저 렌더링 Browser rendering - 0단계 소개 브라우저 렌더링 Browser rendering - 1단계 파싱 'parse' 브라우저 렌더링 Browser rendering - 2단계 스타일링 'style' 브라우저 렌더링 Browser rendering - 3단계 레이아웃 'layout' 브라우저 렌더링 Browser rendering - 4단계 페인팅 'paint' 브라우저 렌더링 Browser r..
[FE] 브라우저 렌더링 Browser rendering - 1단계 파싱 'parse' 브라우저 렌더링 Browser rendering 브라우저는 'content (콘텐츠)' 를 'rendering (렌더링)' 해서 'pixel image(픽셀 이미지)' 즉 화면을 만듭니다. 브라우저 렌더링 Browser rendering - 0단계 소개 브라우저 렌더링 Browser rendering - 1단계 파싱 'parse' 브라우저 렌더링 Browser rendering - 2단계 스타일링 'style' 브라우저 렌더링 Browser rendering - 3단계 레이아웃 'layout' 브라우저 렌더링 Browser rendering - 4단계 페인팅 'paint' 브라우저 렌더링 Browser r..
[Xamarin] iOS SafeArea 자연스럽게 반영해주는 CustomEffect iOS SafeArea 자연스럽게 반영해주는 CustomEffect Android 기기와 달리 iOS 기기는 화면 상단에 위치하는 Status bar 가 Application 화면 크기에 포함되어 있어서 UI 를 만들 때 최상단에 위치한 View 의 Padding 에 20 을 추가해야 화면과 Status bar 가 겹치는 불상사를 피할 수 있습니다. 그래서 대체로 아래와 같이 iOS 에서만 따로 Padding 값을 적용하는 코드를 작성하게 됩니다. 기기를 회전하지 않으면 이대로 사용해도 문제가 없었는데, 만약 기기를 회전시키면 Status bar 의 위치가 달라지게 되니Padding 값도 회전에 맞춰서 다시 조정해야 합니다. 따라서 기기의 Orientation 의 변화를 감지해서 Padding 의 어느 ..
[FE] 브라우저 렌더링 Browser rendering - 0단계 소개 브라우저 렌더링 Browser rendering Rendering (렌더링) 은 여러 데이터를 모아 시각적인 이미지로 만드는 과정입니다. 브라우저는 HTML 과 CSS 같은 데이터를 '렌더링' 해서 픽셀로 구성된 화면을 완성합니다. 이를 브라우저 렌더링 (Browser rendering) 이라고 합니다. 이때 렌더링을 위한 데이터인 HTML / CSS / JavaScript / Media 등 일체를 통틀어서 'content (콘텐츠)' 라고 부릅니다. 브라우저는 'content (콘텐츠)' 를 'rendering (렌더링)' 해서 'pixel image(픽셀 이미지)' 즉 화면을 만듭니다. 웹 프론트 엔드 개발을 크게 보면 '..