본문 바로가기

분류 전체보기339

[2023-09-20] 개발 환경 구축 (vscode 플러그인 설치) 및 JavaScript 기본 개념 강의를 듣고 면접 질문과 관련된 내용, 개념들을 정리 합니다. ※브라우저 동작 원리 https://d2.naver.com/helloworld/59361 참고: 면접 - 프론트엔드 (1) - 브라우저 동작 원리 1. 서버에서 응답으로 받은 HTML 데이터 파싱 2. HTML을 파싱한 결과로 DOM Tree 생성 3. 파싱하는 중 CSS 파일 링크를 만나면 CSS 파일을 요청해서 받아온다. 4. CSS 파싱, CSSOM(CSS Object Model) 생성 5. DOM Tree와 CSSOM이 만들어지면, 이 둘을 사용해 Render Tree 생성 6. Render Tree에 있는 각각의 노드들이 화면의 어디에 어떻게 위치하는지 계산하는 Layout 과정을 거친다. 7. 화면에 실제 픽셀을 Paint DOM .. 2023. 9. 20.
[코드트리 챌린지] 1차 1차를 보충 출석 하려는 조건이, 실력 진단을 한번 더 봐야 하는 것인가..? 오늘 시험봤는데 그러면 시험을 또 봐야 하는 건가?... 이건 아닌 것 같아서 제공해주신 문제를 푸는 것으로 글을 작성하려고 한다. 다음 이미지는 오늘 본 실력진단 결과이다. https://www.codetree.ai/missions/8/problems/corresponding-numbers-and-characters?&utm_source=clipboard&utm_medium=text 이번에 풀었던 문제는 HashMap을 사용해야겠다는 생각이 바로 들었던 유형이어서 금방 풀어낼 수 있었다. 새로 배운 내용은, [ input() for _ in range(n)] 으로 축약해서 사용할 수 있다는 점 이었다. 내 경우에는 매번 fo.. 2023. 9. 18.
[코드트리 챌린지] 2차 2023/09/18 (월) 마지막 문제를 풀지 못했는데.. 마지막 문제는 3가지 방법으로 풀었던 것 같다. 첫번째는 백트래킹(모든 경우의 수에 대한 조합을 계산해야 했어서) 두번째는 itertools의 combinations 세번째는 이중 반복문 사용.. 이번에도 역시나 시간복잡도를 생각하지 않고 풀었던게 문제였는데 세가지 방법 모두 실패했었다. 제안해주신 문제와 해설을 봤는데, 이런 문제 유형도 시간을 줄이기 위한 방법을 HashMap으로 사용할 수 있는지 새로 배울 수 있었다. N^2의 경우에 시간초과가 발생한다면, 한 번의 반복문 안에서 해결해야 한다. 반복문 한 번.. 여기서 또 잠깐 멈칫했던 것은, 어떤 것을 기준으로 쌍의 갯수를 더해줄지 고민했다. (1) 현재 인덱스를 기준으로 이미 지나온 값.. 2023. 9. 18.
display, visibility, opacity 프로퍼티 display inline-block none: 아예 보이지 않음 display 요소는 상속되지 않는다 inline요소(block요소를 포함할 수 없다) width, heigth 요소 지정 불가능 margin-top, margin-bottom 지정 불가능 https://oursmalljoy.com/css-width-auto-height-auto-기본개념-잘못-생각하고-있는-것들/ 【CSS】 width: auto와 height: auto 당신이 몰랐던 작동 원리 ⋆ Our Small Joywidth: auto와 height: auto는 우리가 생각했던 것이랑 다르게 작동할 때가 있다. 특히 이 설정값들은 기본 설정값이기 때문에 모든 사람들이 겪게 될 잠재적 문제이다. 이 포스트에서는 이들의 작동원oursm.. 2023. 9. 14.
백준의 PyPy3와 Python3 종정 파이썬으로는 제출에서 시간 초과가 발생하는데 PyPy로는 잘 제출되는 경우가 있다. 시간 초과 문제를 해결하기 위해 파이썬으로 단련해야 되는건가? 싶어서 찾아본 글인데 보고 깜짝 놀랐다... 일목요연하게 잘 설명해주셔서 글이 부드럽게 읽힌다. https://djm03178.tistory.com/16 PyPy3로 제출하면 통과됩니다. BOJ에서는 Python 3를 위한 제출 언어를 두 가지 제공하고 있습니다. 기본 CPython 인터프리터를 사용하는 Python 3와, 일반적으로 훨씬 빠른 속도를 자랑하는 인터프리터인 PyPy3입니다. 이 글에서 하고 djm03178.tistory.com PyPy3로 제출하면 통과됩니다. 2023. 9. 14.
구름톤 챌린지 4주 day20 학습 일기 마지막 문제는, 새로 삽입하는 문자를 target으로하고, bfs 탐색을 했다. 연결된 target의 개수가 K 이상인 경우 해당 칸들을 '.'으로 대입해야 했는데, bfs 탐색할 때, 조건에 맞는 행과 열을 배열에 추가한 뒤 target개수와 같이 return 해주었다. 주의해야할 부분은, 행과 열을 받을 때 인덱스로 생각해서 전환해주어야 한다는 점. 예를 들어, 1행1열은 사실상 2차원 배열에서(0,0)이기 때문에, inputRow-1, inputCol-1을 해주어야 한다. 오늘의 학습일기 끝! 콘! 우리가 드디어 20일차까지 도달했어ㅠㅠ! 무지! 축하해~!! 2023. 9. 8.
하나의 파일에 포함된 여러 수정 사항을, 분리하여 commit 하는 방법(vscode) 여러가지 방법이 있겠지만(인터렉티브 리베이스, git add -p 등 .. ) vscode에서 gui로 제공하는 좋은 방법이 있다. 가끔 작업을 쭉 하다 보면, 여러가지 수정 사항이 하나의 파일에 포함되게 되는 경우가 있다. 그럴 때 vscode 의 git diff를 확인하면, 파일 하나이기 때문에 한 파일에 여러가지 diff가 쭈루룩 나열되어 커밋을 통으로 할 수 밖에 없는 상황이 벌어지곤 했는데.. 이때 (과거의) 내가 했던 방법은 수정사항들을 메모장에 복붙해서.. 하나씩.. 떼어와 파일을 재 조립하여.. 완성하는 .. 시간이 많이 걸리는 방법으로 수행했다. 그러나 인텔리제이에서는 따로 커밋이 가능하다는 말씀을 듣고! 아 그러면 vscode도 제공할 것 같다는 생각이 들어서 빠르게 찾아봤다. 구글에 .. 2023. 9. 7.
구름톤 챌린지 4주 day19 학습 일기 bfs를 사용해서 풀이를 해도 같은 결과가 나오겠지만 이번 문제는 힙을 사용해서 풀이했다. 다만 예외처리를 해야 하는 부분을 놓치면 안되고, 접근이 불가능한 도시도 고려해야 한다. 방문처리도 해주어야 무한루프를 돌지 않는다. 오늘의 학습 일기 끝 2023. 9. 7.
구름톤 챌린지 4주 day18 학습 일기 dp로 풀지 않았고 시뮬레이션만 활용했는데, 풀이를 꼭 봐야겠다. 자료구조는 딕셔너리를 사용해서 L,R,U,D를 key로, (row, col) 조절 값을 value로 넣어 초기화를 했다. 예를들어, {L:(0,-1)} L의 경우 좌측으로 이동하기 때문에 열을 -1 감소해야 하는 것을 의미한다. 결론적으로는 해당 칸의 중첩점은 가로선 개수와 세로선 개수의 곱으로 표현할 수 있다. 디버깅을 했던 부분은.. 배열을 선언할 때 [[[0,0]]*N for _ in range(N)] 이렇게 한 경우 한 행의 값을 변경할 때마다 통째로 변한다. 얕은 복사로 인해 동일한 주소값을 참조하게 되어 문제가 발생하게 되는 것이 원인이었다.a=[[[0,0]]*(N) for _ in range(N)] print(a) #[[[0,.. 2023. 9. 6.