본문 바로가기

알고리즘12

[python] 백준 알고리즘 1152번 문제 영어 대소문자와 띄어쓰기만으로 이루어진 문자열이 주어진다. 이 문자열에는 몇 개의 단어가 있을까? 이를 구하는 프로그램을 작성하시오. 단, 한 단어가 여러 번 등장하면 등장한 횟수만큼 모두 세어야 한다. 첫 줄에 영어 대소문자와 띄어쓰기로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 띄어쓰기 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열의 앞과 뒤에는 공백이 있을 수도 있다. n = input() l = list(n.strip().split()) print(len(l)) strip() : 주어진 문자열에서 양쪽 끝에 있는 공백을 삭제 split() : 주어진 문자열을 띄어쓰기를 기준으로 나누어준다 2020. 1. 29.
[javascript] merge sort (병합정렬 자바스크립트 알고리즘) 📊 병합 정렬하나의 리스트를 두 개의 균등한 크기로 분할하고 분할된 부분 리스트를 정렬한 다음, 두 개의 정렬된 부분 리스트를 합하여 전체 정렬을 하는 방법 병합 정렬은 다음 세가지 과정을 통해 이루어진다. 분할(Divide): 배열을 같은 크기의 2개의 배열로 분할한다.정복(Conquer): 분할된 배열을 정렬.결합(Combine): 정렬된 부분 배열을 다시 합침 const mergeSort = function(array) { if (array.length < 2) return array; let pivot = Math.floor(array.length / 2); //쪼개기 let left = array.slice(0, pivot); let right = array.slice(pivot, array.len.. 2020. 1. 24.
[javascript / python ] 비밀지도 🔑 2018 카카오 입사문제 1번 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다행히 지도 암호를 해독할 방법을 적어놓은 메모도 함께 발견했다. 지도는 한 변의 길이가 n인 정사각형 배열 형태로, 각 칸은 “공백”(“ “) 또는 “벽”(“#”) 두 종류로 이루어져 있다. 전체 지도는 두 장의 지도를 겹쳐서 얻을 수 있다. 각각 “지도 1”과 “지도 2”라고 하자. 지도 1 또는 지도 2 중 어느 하나라도 벽인 부분은 전체 지도에서도 벽이다. 지도 1과 지도 2에서 모두 공백인 부분은 전체 지도에서도 공백이다. “지도 1”과 “지도 2”는 각각 정수 배열로 암호화되어 있다. 암호화된 .. 2020. 1. 23.