전체 글 (339) 썸네일형 리스트형 나의 코딩테스트 공부법 안녕하세요. 게임클라이언트로 근무하고 있는 두부입니다. 최근 홍정모 교수님이 알고리즘의 중요성에 대해 많이 이야기해주셨는데, 제가 이번에 쓰는 대상은 교수님이 말씀하신 근본적인 알고리즘과는 거리가 좀 있을지 모르겠지만, 그래도 코딩테스트 문제풀이를 준비하시는 분들에게 저의 경험과 공부방법을 공유해보고자 이런 글을 작성하게 되었습니다. 평소 조금씩 알고리즘을 공부해오다가 어느날 이직이 하고싶어서 국내 이런저런 회사에 코딩테스트를 봤는데 보는 곳 마다 합격해버리고 심지어 한 회사에서 제가 코딩테스트 제일 잘 본 편이라는 말까지 듣게되는 경험을 하게 되었습니다. 제가 본 회사중에 코딩테스트 컷이 높은 회사가 없기도 하였지만.. 뒤늦게 알고리즘 시작한 사람으로써 이렇게 공부하고 이정도 결과를 만들었다는 걸 .. [cpp]사라지는 발판 - 2022 카카오 블라인드 채용 플레이어 A와 플레이어 B가 서로 게임을 합니다. 당신은 이 게임이 끝날 때까지 양 플레이어가 캐릭터를 몇 번 움직이게 될지 예측하려고 합니다. 각 플레이어는 자신의 캐릭터 하나를 보드 위에 올려놓고 게임을 시작합니다. 게임 보드는 1x1 크기 정사각 격자로 이루어져 있으며, 보드 안에는 발판이 있는 부분과 없는 부분이 있습니다. 발판이 있는 곳에만 캐릭터가 서있을 수 있으며, 처음 캐릭터를 올려놓는 곳은 항상 발판이 있는 곳입니다. 캐릭터는 발판이 있는 곳으로만 이동할 수 있으며, 보드 밖으로 이동할 수 없습니다. 밟고 있던 발판은 그 위에 있던 캐릭터가 다른 곳으로 이동하여 다른 발판을 밞음과 동시에 사라집니다. 양 플레이어는 번갈아가며 자기 차례에 자신의 캐릭터를 상하좌우로 인접한 4개의 칸 중에서.. [Git] Git 브랜치 2 - Pro git book, 2nd Edition 정리 3.4. 브랜치 워크플로 Long-Running 브랜치 Git 개발자가 많이 선호하는 워크플로가 하나 있다. 배포했거나 배포할 코드만 master 브랜치에 Merge 해서 안정 버전의 코드만 master 브랜치에 둔다. 개발을 진행하고 안정화하는 브랜치는 develop 이나 next 라는 이름으로 추가로 만들어 사용한다. 이 브랜치는 언젠가 안정 상태가 되겠지만, 항상 안정 상태를 유지해야 하는 것이 아니다. 개발 브랜치는 공격적으로 히스토리를 만들어 나아가고 안정 브랜치는 이미 만든 히스토리를 뒤따르며 나아간다. 토픽 브랜치 토픽 브랜치는 어떤 한 가지 주제나 작업을 위해 만든 짧은 호흡의 브랜치다. 브랜치 각각은 독립돼 있기 때문에 매우 쉽게 컨텍스트 사이를 옮겨 다닐 수 있다. 묶음별로 나눠서 일하.. 방송대 프로젝트 - 프로젝트 초기 셋팅 2022.06.21 방송대 기말고사를 끝내고 프로젝트를 제대로 시작하기 위한 준비를 하기 시작했다. 아마 이번달은 할 일이 많아서 기본 셋팅정도만 보고 다음달부터 최대한 시간을 내서 작업을 하게 될 것 같다. 이거 외에도 진행하는 프로젝트(유니티 플젝, 영어공부)가 있기 때문에 최대한 빠른시간 안에 성과를 내기 위해 버릴건 버리고 진행해나갈 것이다. 앞으로 프로젝트를 편하게 진행하기 위한 툴들을 추가하는 작업을 했다. 나중에 이런것들을 모아 EugeneTemplate과 같은 레포를 만들까 하는 생각도 든다. 이를 위해 레포에 추가한 이슈내역은 다음과 같다. 1.루키스 기반 기본 템플릿 성능상 살짝 아쉬운 부분도 있고 평소 쓰던 타입도 아니지만, 그래도 다양한걸 사용해보고자 하는 마음에서 지난번 루키스님의.. 운영체제 - 분산 운영체제 정리 (방송통신대학교 운영체제) 분산 운영체제의 개요 분산 시스템 메모리나 클럭을 물리적으로 공유하지 않은 프로세서들의 집합 네트워크로 연결되어 상호 협력 가능 네트워크를 중심으로 여러 프로세스(서버, 클라이언트 ,자원 등)이 연결이 되어있다. 서버: 자원을 제공하는 쪽 클라이언트: 자원을 사용하는 쪽 분산 시스템의 목적 자원 공유 연산속도 향상 신뢰성 향상 통신의 용이성 자원 공유 연결된 다른 사이트의 자원을 사용 예: 원격 사이트의 파일 공유, 원격 사이트에서의 프린팅, 분산 DB의 정보 처리 등 연산속도 향상 분할이 가능한 작업을 분산 시스템의 여러 사이트에 분산시켜 동시 처리 부하 공유를 통해 과부하 해소 및 전체 처리속도 향상 신뢰성 향상 일부 사이트에서 장애가 발생하더라도 전체 시스템의 동작이 멈추지 않음 장애 검출, 장애 .. 운영체제 - 가상메모리 정리 (방송통신대학교 운영체제) 가상 메모리의 개념 메모리 크기보다 더 큰 기억공간이 필요한 프로세스를 실행할 수 있게 하는 방법 → 한번에 전체 프로세스의 일부분만을 실행함 가상메모리 프로세스에 의해 참조되는 주소를 메모리에서 사용하는 주소와 분리 가상주소와 실주소 공간으로 분리 가상주소공간(V): 실제 프로세스의 가상주소 공간 실주소공간(R): 실제 메모리의 주소 공간 CPU에서는 실주소공간이 필요함. 메모리의 가상주소를 실주소로 변환하는 과정이 필요 사상 프로세스 실행을 위해 가상주소를 실주소로 변환 동적 주소 변환(DAT): 프로세스가 실행되는 동안 사상 인위적 연속성: 가상주소 공간에서는 연속이지만, 실주소 공간에서도 연속일 필요는 없음 블록 단위 주소 변환 블록 단위로 분류하여 각 블록이 메모리의 어디에 위치하는지를 관리 블.. 운영체제 - 메모리관리 정리 (방송통신대학교 운영체제) 프로세스와 메모리 프로세스의 동작 프로그램 카운터를 참조하여 메모리로부터 수행될 명령을 읽어 CPU의 해당 명령을 수행 프로그램은 보조기억장치에 파일 단위로 있다가, 실제 수행시 메모리에 로드해서 사용 메모리에 있는 프로세스를 반복해서 사용해야 하는 경우, 더욱 빠른 기억장치인 캐시에 저장하여 사용 기억장치 계층 구조 적절한 비용으로 높은 성능을 낼 수 있도록 계층적으로 구성 CPU[레지스터] > 캐시 기억장치 > 메모리 > 보조 기억장치 OS의 메모리 관리 메모리 호출: 언제 새로운 프로세스를 메모리에 둘 것인가? 메모리 배치: 실행된 프로세스를 메모리 내의 어느 곳에 둘 것인가? 메모리 교체: 메모리가 꽉 찬 상태에서 새로운 프로세스를 적재해야 한다면 어떤 프로세스를 제거할 것인가? 메모리를 고정 분.. [Git] Git 브랜치 1 - Pro git book, 2nd Edition 정리 3.1.브랜치란 무엇인가 개발을 하다 보면 코드를 여러 개로 복사해야 하는 일이 자주 생긴다. 코드를 통째로 복사하고 나서 원래 코드와는 상관없이 독립적으로 개발을 진행할 수 있는데, 이렇게 독립적으로 개발하는 것이 브랜치다. 사람들은 브랜치 모델이 Git의 최고의 장점이라고, Git이 다른 것들과 구분되는 특징이라고 말한다. 당최 어떤 점이 그렇게 특별한 것일까. Git의 브랜치는 매우 가볍다. 순식간에 브랜치를 새로 만들고 브랜치 사이를 이동할 수 있다. 다른 버전 관리 시스템과는 달리 Git은 브랜치를 만들어 작업하고 나중에 Merge 하는 방법을 권장한다. 브랜치란 Git의 브랜치는 커밋 사이를 가볍게 이동할 수 있는 어떤 포인터 같은 것이다. 아래와 같이 git branch 명령으로 testin.. 이전 1 ··· 5 6 7 8 9 10 11 ··· 43 다음