본문 바로가기

프로그래밍16

[코테] 순위 Lv.3 (40%) 문제 ###### 문제 설명 n명의 권투선수가 권투 대회에 참여했고 각각 1번부터 n번까지 번호를 받았습니다. 권투 경기는 1대1 방식으로 진행이 되고, 만약 A 선수가 B 선수보다 실력이 좋다면 A 선수는 B 선수를 항상 이깁니다. 심판은 주어진 경기 결과를 가지고 선수들의 순위를 매기려 합니다. 하지만 몇몇 경기 결과를 분실하여 정확하게 순위를 매길 수 없습니다. 선수의 수 n, 경기 결과를 담은 2차원 배열 results가 매개변수로 주어질 때 정확하게 순위를 매길 수 있는 선수의 수를 return 하도록 solution 함수를 작성해주세요. ##### 제한사항 - 선수의 수는 1명 이상 100명 이하입니다. - 경기 결과는 1개 이상 4,500개 이하입니다. - results 배열 각 행 [A, .. 2024. 2. 19.
Github에 실수로 이미 올린 파일 삭제(history 삭제) 깃허브로 프로젝트를 진행하다 보면 꼭 한 번쯤은 파일을 잘못 올리게 됩니다. 팀프로젝트 때 팀원 한분이. env를 올린 적도 있었고, 배포 파일, log파일, 빌드파일 등등 같이 올려놓고 몰랐던 적도 있었죠.. git reset, revert 같이 커밋이 하나인 경우가 아닌, 이력에 쌓여있을 경우 해결책으로 repository를 다시 만들 수 없을 때 최후의 수단입니다 1. .gitignore 생성 루트 폴더에 .gitignore 파일을 만든 후, git이 추적에서 제외할 폴더나 파일을 입력합니다 직접 작성한 소스 파일, package.json 등 프로젝트를 나타내는 파일을 제외하고 모든 파일을 적으면 됩니다. 구글에 .gitignore + [사용 스택]으로 검색하면 template도 많습니다. 2. 로.. 2023. 11. 11.
n진법으로 변환하는 함수 10진법 -> n진법 구현 10보다 작은 n진법으로 변화하는 함수는 다음과 같습니다. # n이 10보다 작을 때 def to_nbase(num, n): s = "" while num != 0: s = str(num % n) + s num //= n return s n으로 나눈 나머지를 앞쪽부터 쌓아 올립니다. 몫이 0이 될 때까지 진행한 값을 반환하면 n진법으로 변환한 숫자가 됩니다. 하지만 10보다 큰 n진법으로 변환할 때에는 다른 함수가 필요합니다. 10진법 표현으로는 11,12와 같은 숫자를 한자리 수로 표현할 수 없기 때문에 알파벳을 추가하여 나타내게 됩니다. # n이 10보다 클 때(36까지) def to_nbase(num, n): chars = "0123456789ABCDEFGHIJKLMNOP.. 2023. 10. 1.
[코테] 콜라 문제 Lv. 1 (67%) 문제 설명 오래전 유행했던 콜라 문제가 있습니다. 콜라 문제의 지문은 다음과 같습니다. 정답은 아무에게도 말하지 마세요. 콜라 빈 병 2개를 가져다주면 콜라 1병을 주는 마트가 있다. 빈 병 20개를 가져다주면 몇 병을 받을 수 있는가? 단, 보유 중인 빈 병이 2개 미만이면, 콜라를 받을 수 없다. 문제를 풀던 상빈이는 콜라 문제의 완벽한 해답을 찾았습니다. 상빈이가 푼 방법은 아래 그림과 같습니다. 우선 콜라 빈 병 20병을 가져가서 10병을 받습니다. 받은 10병을 모두 마신 뒤, 가져가서 5병을 받습니다. 5병 중 4병을 모두 마신 뒤 가져가서 2병을 받고, 또 2병을 모두 마신 뒤 가져가서 1병을 받습니다. 받은 1병과 5병을 받았을 때 남은 1병을 모두 마신 뒤 가져가면 1병을 또 받을 수 있.. 2023. 8. 31.
마크다운 문법 정리 마크다운 이란? 마크다운을 사용하면 쉬운 문법으로 텍스트를 보기 쉽게 정리할 수 있는 언어입니다. 깃허브에서 README.md 파일을 작성하면 레포지터리의 메인 화면에 노출되는데 .md라는 확장자가 마크다운으로 작성된 파일입니다. VSCode를 사용하는 경우 Markdown All in One이라는 확장 프로그램을 설치하면 여러 도움을 받을 수 있습니다. ctrl + shift + x 키로 마켓플레이스로 들어간 뒤, markdown을 검색해서 설치할 수 있습니다. 간단 마크다운 문법 정리 1.# (제목1) (띄어쓰기 필수) 제목1 2.## (제목2) 제목2 3.### (제목3) 제목3 4. 1. (순서 있는 목록) 아이템1 아이템2 아이템3 5. - (순서 없는 목록) 아이템 아이템 아이템 6. ** (.. 2023. 8. 29.
[코테] 옹알이 (1) Lv. 0 (32%) 문제 설명 머쓱이는 태어난 지 6개월 된 조카를 돌보고 있습니다. 조카는 아직 "aya", "ye", "woo", "ma" 네 가지 발음을 최대 한 번씩 사용해 조합한(이어 붙인) 발음밖에 하지 못합니다. 문자열 배열 babbling이 매개변수로 주어질 때, 머쓱이의 조카가 발음할 수 있는 단어의 개수를 return하도록 solution 함수를 완성해주세요. 제한사항 1 ≤ babbling의 길이 ≤ 100 1 ≤ babbling[i]의 길이 ≤ 15 babbling의 각 문자열에서 "aya", "ye", "woo", "ma"는 각각 최대 한 번씩만 등장합니다. 즉, 각 문자열의 가능한 모든 부분 문자열 중에서 "aya", "ye", "woo", "ma"가 한 번씩만 등장합니다. 문자열은 알파벳 소문자로.. 2023. 8. 27.
[코테] 정수를 나선형으로 배치하기 Lv. 0 (45%) 문제 설명 양의 정수 n이 매개변수로 주어집니다. n × n 배열에 1부터 n^2 까지 정수를 인덱스 [0][0]부터 시계방향 나선형으로 배치한 이차원 배열을 return 하는 solution 함수를 작성해 주세요. 제한사항 1 ≤ n ≤ 30 입출력 예 n result 4 [[1, 2, 3, 4], [12, 13, 14, 5], [11, 16, 15, 6], [10, 9, 8, 7]] 5 [[1, 2, 3, 4, 5], [16, 17, 18, 19, 6], [15, 24, 25, 20, 7], [14, 23, 22, 21, 8], [13, 12, 11, 10, 9]] 입출력 예 설명 입출력 예 #1 예제 1번의 n의 값은 4로 4 × 4 배열에 다음과 같이 1부터 16까지 숫자를 채울 수 있습니다.행 .. 2023. 8. 27.
[Flutter] 플러터 설치 (for Mac) 2023.06.26 - [프로그래밍/Flutter] - 플러터(Flutter)로 1인 앱개발을 하려는 이유? 2023.08.03 - [프로그래밍/Flutter] - [Flutter] 플러터 설치 (for 윈도우) 1. 플러터 SDK 설치하기 https://docs.flutter.dev/get-started/install Install Install Flutter and get started. Downloads available for Windows, macOS, Linux, and ChromeOS operating systems. docs.flutter.dev 위에 링크에 들어가서 macOS용 SDK를 다운로드하고 압축을 해제합니다. 인텔 프로세서인지, 애플 실리콘인지에 따라 알맞은 SDK를 다운로드합니.. 2023. 8. 7.
[Flutter] 플러터 설치 (for 윈도우) 2023.06.26 - [프로그래밍/Flutter] - 플러터(Flutter)로 1인 앱개발을 하려는 이유? 1. 플러터 SDK 설치하기 https://docs.flutter.dev/get-started/install Install Install Flutter and get started. Downloads available for Windows, macOS, Linux, and ChromeOS operating systems. docs.flutter.dev 위에 링크에 들어가서 OS에 맞는 SDK를 다운로드하고 압축을 해제합니다. 위치는 어디든 상관이 없지만 웬만하면 유저 폴더나 문서 폴더 같은 의미 있는 곳에 해제해 줍니다. SDK의 bin 폴더 경로를 환경 변수에 등록해 주어야 하기 때문에 잘 기억.. 2023. 8. 3.
플러터(Flutter)로 1인 앱개발을 하려는 이유? for 플러터를 쓸지 고민하는 앱개발자, 앱개발 인문을 플러터로 생각 중인 입문자, 사이드프로젝트를 생각 중인 개발자 or 디자이너 1인 앱개발을 하는 이유? 요즘에는 월급을 제외한 모든 것이 오르면서, 부업이 필수적이라는 생각이 듭니다. 사치스러운 삶을 바라는 건 아니지만, 적어도 하루 세 끼 배달 음식만 시켜 먹는 것으로도 유지할 수 있는 삶이라면 일에 더 집중할 수 있겠다는 생각을 자주 합니다. 개발자는 본인의 전문성을 살리면서 할 수 있는 부업으로 사이드 프로젝트가 있습니다. 이를 여러 지인들과 팀을 이뤄서 하는 경우도 있고 1인으로 하는 경우도 있습니다. 저는 최근 여러 팀 프로젝트를 진행하면서 1인 개발이 다시 하고 싶어져서 1인 개발로 정했습니다. 디자인을 꾸준히 해와서 익숙해질 만한데, 디.. 2023. 6. 26.
[코테] 가장 긴 접두어이자 접미어(LPS) 문제 문자열을 입력받아 다음의 조건을 만족하는 LPS*를 찾아 그 길이를 리턴해야 합니다. LPS: 주어진 문자열의 가장 긴 접두어이자 접미어(Longest Prefix which is also Suffix) non-overlapping: 접두어와 접미어는 서로 겹치는 부분이 없어야 합니다. 다시 말해, prefix와 suffix는 문자열의 동일한 인덱스에 위치한 문자를 요소로 가지면 안 됩니다. 입력 인자 1 : str string 타입의 임의의 알파벳 소문자 문자열 ( str.length는 60,000 이하 출력 number 타입을 리턴해야 합니다. 주의사항 prefix(접두어)는 문자열의 첫 인덱스부터 시작하는 모든 부분 문자열을 의미합니다. suffix(접미어)는 문자열의 마지막 인덱스부터 시작하.. 2023. 2. 5.
[코테 js] treeBFS 너비 우선 탐색(BFS, Breadth First Search) 문제 임의의 tree를 구성하는 노드 중 하나의 Node 객체를 입력받아, 해당 노드를 시작으로 너비 우선 탐색(BFS, Breadth First Search)을 합니다. 이때, 탐색되는 순서대로 노드의 값이 저장된 배열을 리턴해야 합니다. let bfs = function (node) { // TODO: 여기에 코드를 작성합니다. }; // 이 아래 코드는 변경하지 않아도 됩니다. 자유롭게 참고하세요. let Node = function (value) { this.value = value; this.children = []; }; // 위 Node 객체로 구성되는 트리는 매우 단순한 형태의 트리입니다. // membership check(중복 확인)를 따로 하지 않습니다. Node.prototype.a.. 2023. 1. 18.