: Web Developer & Data Scientist
백준/구현

[Python] 백준 15686 (구현)

https://www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net 개요 dfs를 닮은 단순 구현 문항 itertools의 combinations (조합) 을 알면 간단히 해결 가능 (번외) 3중 for문에 함수 참조까지 섞여 있는데 타임 오버가 안나온게 신기 해결 방법 sys 모듈 사용된지 꽤 되어서 그런지 사용법이 잘 기억이 안남 사용 이유는 아마 input 함수의 시간 초과율이 높기 때문 import sys // 두 숫자가 주어질 때 단..

백준/그리디

[Python] 백준, 1339 (그리디)

https://www.acmicpc.net/problem/1339 1339번: 단어 수학 첫째 줄에 단어의 개수 N(1 ≤ N ≤ 10)이 주어진다. 둘째 줄부터 N개의 줄에 단어가 한 줄에 하나씩 주어진다. 단어는 알파벳 대문자로만 이루어져있다. 모든 단어에 포함되어 있는 알파벳은 최대 www.acmicpc.net 개요 - 순간순간 최선의 선택을 한다는 그리디 알고리즘 원리에 입각해 알파벳의 입장과 숫자의 입장으로 나눠 생각 - 가장 헷갈렸던 부분은 맨 앞자리에 위치한 알파벳이 같은 수준(등장하지 않았으며 자릿수가 같은)일 경우에 숫자 배분을 어떻게 해줘야하는지에 대한 고민 해결 방법 - 위에 서술한 두번째 고민은 큰 의미가 없었는데, 중요한 건 어떤 알파벳이 어떤 숫자를 가져가느냐가 아님 - 그것보다..

백준/그리디

[Python] 백준, 1541 (그리디)

https://www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net 그리디 알고리즘? 각 상황에서 최선의 선택을 이어나가는 알고리즘 마시멜로 게임의 경우 (한시간 참으면 두개 - 당장 받기를 택하면 1개를 제공하는), 각 상황에서 최선의 선택은 1개를 받는 것이므로 절대 2개를 가질 수 없음 개요 그리디 알고리즘 분류의 문항 로직이나 정보가 크게 과하거나 복잡하진 않음 코드 import sys seqs = list(map(str, sys.stdin.readl..

과제 테스트/고양이 사진 검색 (programmers)

[Front-End] 1. 이미지 상세 보기 모달 관련

1. 모달창 닫기 구현하기 # 기존 코드 (app.js) constructor($target) { this.$target = $target; ... this.imageInfo = new ImageInfo({ $target, data: { visible: false, image: null } }); } # 닫기 버튼 추가 (1) // imageInfo.js 의 render 메서드. render() { if (this.data.visible) { const { name, url, temperament, origin } = this.data.image; this.$imageInfo.innerHTML = ` ${name} x 성격: ${temperament} 태생: ${origin} `; this.$imageI..

알고리즘/완전탐색

[JavaScript] Programmers 모의고사

개요 - 코드를 작성하면서도 이것보다 짧고 확실한 코드가 분명 있겠다 확신함... - 나머지를 구해 인덱스를 활용하는 방법을 생각 못하고 배열을 복제하여 따질 생각한 것부터 코드가 길어진 원인 - 정답을 맞힌 배열에서 sort로 맞힌 사람을 나열하려 했는데 이 또한 두 번째 원인 - 하나하나 보면 그동안 익힌 메서드들을 나름 자연스레 써먹은 모습인데 전체적으로 봤을 때는 그저 과해보인다. JS CODE (1) - 내 코드 function sos(answers) { const answer1 = { list: [1, 2, 3, 4, 5], length: 5 }; const answer2 = { list: [2, 1, 2, 3, 2, 4, 2, 5], length: 8 }; const answer3 = { l..

알고리즘/해시

[JavaScript] Programmers 베스트 앨범

개요 - 난잡하게 풀었다. 가장 확실하지만 그만큼 무식하기도 한 풀이. - 객체의 정의는 주요 객체인 genre_obj로 정의했으며, 인덱스와 플레이타임 객체를 요소로 갖는 배열이 프로퍼티 값. genre_obj = {classic: [ {idx:--, play_time: --} ...], pop: [...]}; - sort 메서드를 이용해서 play_time 순으로 내림차순해준다. (이때 비교함수 작성시, return 값을 지정 안해주면 적용 안됨 주의하자) - sum_arr 배열이 장르 정보와 플레이시간 총합을 객체의 형태로 담고 있도록 한 후, 마찬가지로 sort 메서드를 통해 내림차순 해준다. - sum_arr 배열의 요소들을 key값으로 genre_obj의 요소들을 조건에 맞게 꺼내어 answe..

알고리즘/해시

[JavaScript] Programmers 위장

개요 - 이제 좀 알거같은데. 의상은 중복이 되지 않으므로 갯수만 중요해진다. 다루기 편한 객체로 변경하는 작업 진행 - 답은 구하는 게 아차 싶은데, 확률과 통계를 다 까먹어서 좀 헤맸다. JS CODE (1) - 내 풀이 function solution(clothes) { let answer = 1; const clothes_obj = clothes.reduce((result, value) => { result[value[1]] = result[value[1]]? result[value[1]] + 1 : 2; return result; }, {}); for (let key in clothes_obj) { answer *= clothes_obj[key]; } return answer - 1; } - r..

알고리즘/해시

[JavaScript] Programmers 완주하지 못한 선수

개요 - 문제는 굉장히 심플하며 풀이를 향한 길 또한 그리 다양하지 않아 보인다. - 해시 : 데이터를 다루는 기법 중 하나로, 검색과 저장을 아주 빠르게 진행함(대표적으로 Map 객체) + 데이터를 저장할 때 key-value형태로 데이터가 존재하고, key값이 배열의 인덱스로 저장되기 때문에 검색과 저장이 빠르게 일어남 JS CODE (1) function solution(participant, completion) { const map = new Map(); for(let i = 0; i < participant.length; i++) { let a = participant[i], b = completion[i]; map.set(a, (map.get(a) || 0) + 1); map.set(b, (..

Martin Hoffman
'분류 전체보기' 카테고리의 글 목록 (2 Page)