목록분류 전체보기 (39)
이것도 알아야 하네?
https://programmers.co.kr/learn/courses/30/lessons/64062 코딩테스트 연습 - 징검다리 건너기 [2, 4, 5, 3, 2, 1, 4, 2, 5, 1] 3 3 programmers.co.kr 징검다리는 숫자가 적혀있는 디딤돌로 구성되어있고, 사람이 디딤돌을 지나가면 적힌 숫자가 줄어든다고 할 때 징검다리를 건널 수 있는 최대 인원을 구하는 문제이다. 사람이 건널 때 징검다리에 있는 디딤돌을 딛고 건너야하되, 숫자가 0이 된 디딤돌이 있으면 점프를 해서 가야한다. 점프로 넘을 수 있는 디딤돌 개수 또한 주어진다. 풀이 (시도 1) 효율성을 보는 문제라서 안될 것은 알았지만 누구나 생각할 수 있는 naive한 접근 방식을 도전해보았다. 징검다리 길이 x 징검다리에 있..
풀이 이번 문제에서 고려했어야했던 포인트는 두 가지로, 첫 번째는 후보 조합을 구하는 것과 두 번째는 조합 중 중복을 제외해야하는 것이다. 이렇게 복잡하게 풀 문제는 아니었는데, 깔끔한 알고리즘을 떠오르지 않았다. 후보 조합을 찾는 것은 2 step으로 구성되어있다. '*'로 치환되어있는 banned_id 들이 될 수 있는 후보를 먼저 dict형식으로 찾아놓은 후, DFS를 통해서 생성할 수 있는 모든 조합을 찾는다. 첫 번째 step에서 중요한 점은 banned_id의 후보를 dict 형식으로 저장할 때 id를 저장하는 것이 아닌 user_id의 위치를 저장한다. 이는 이후 중복체크할 때 사용된다. 조합을 찾을 때는 이미 선택한 id는 중복되서 들어갈 수 없으니 이미 앞에서 다를 banned_id로 선..
■ Shell 개념 Shell 이란, 사용자와 Unix 계열 시스템 사이에서 인터페이스 역할을 한다. 사용자로부터 입력을 받고, 해당 입력을 기반으로 명령들을 처리하여 결과를 출력한다. ■ Shell Script 개념 Shell Script는 쉽게 이야기 하자면, Shell 환경에서 처리되는 명령어들의 모음이며, 작성된 순서대로 처리된다. Shell Script를 잘 이용한다면 방대한 양의 작업들을 자동화하여 효율적으로 처리할 수 있다. ■ Shell Script 작성 예시 > 표준 입력이 없는 Shell Script $ vi test.sh sh 확장자를 이용하여 테스트용 Shell Script를 생성한다. Shell Script를 작성 시에 가장 중요한 점은, 아래 문장을 파일 가장 첫 번째줄에 적어 ..
지난 시간까지 git에 대한 개념과 로컬 저장소를 생성하는 방법에 대해서 알아봤다. 해당 내용을 확인하고 싶다면 ⬇⬇⬇⬇⬇⬇ git 완벽 정리 시리즈 > 0. 개념 및 시작하기 ■ git flow 기본적인 흐름은 아래와 같다. local 환경에서 작업 시 작업하고 있는 현재의 폴더를 Working Diretory라고 하며, 자유롭게 파일을 변경할 수 있다. 만약 변경된 파일을 원격 저장소에 반영하고 싶을 시에는, git add 명령어를 통해서 변경 이력을 전송할 파일을 선택하여 Staging Area로 만들고, git commit 명령어를 통해서 전송할 상태로 Local Repository에 있는 파일을 업데이트 시켜준다. 그리고 마지막으로 git push를 해야지만 실제 원격 저장소의 파일들이 업데이트..
■ Version Control System(VCS) Git을 이해하기 위해서는 우선 Version Control System(VCS)의 개념부터 알아야한다. VCS란 시간에 지남에 따라 변경되는 파일의 이력을 효율적으로 관리할 수 있게 하는 시스템이다. 모든 이력을 다 가지고 있기 때문에, 만약 파일 변경 후 문제가 생겼을 때도 특정 시점의 파일 상태로 원복할 수 있다. Git도 이러한 파일 이력 관리를 위한 도구 중 하나이지만, 변경 사항을 관리하는 방법에서 다른 VCS(CVS, Subversion 등)과의 차이가 존재한다. 다른 VCS의 경우는 이전 파일과의 차이만을 저장하는 반면, Git은 현재 파일의 순간의 모습을 snapshot으로 저장한다. Git은 workspace에서 변경한 파일을 sna..
■ 권한 이번 시간에서는 Unix에서 제공하는 파일 및 디렉토리의 소유 및 접근 권한에 대해서 알아볼 예정이다. 해당 기능을 통해 사용자의 파일에 대한 권한을 제한하여 보안을 강화할 수 있다. Unix 계열 시스템에 존재하는 모든 파일 및 디렉토리는 아래의 속성을 가진다. Owner permissions - 파일 및 디렉토리의 소유자가 행사할 수 있는 권한 Group permissions - 파일 및 디렉토리의 소유 그룹에 포함된 사용자가 행사할 수 있는 권한 Other permissions - 모든 사용자가 파일 및 디렉토리에 행사할 수 있는 권한 ■ 접근 권한 확인 $ls -l ./ -rw-r--r-- 1 [owner_name] [group_name] 651 12 13 23:25 node.py -rw..