본문 바로가기

전체 글

(138)
2021-12-20 / N개의 최소공배수 문제 설명 두 수의 최소공배수(Least Common Multiple)란 입력된 두 수의 배수 중 공통이 되는 가장 작은 숫자를 의미합니다. 예를 들어 2와 7의 최소공배수는 14가 됩니다. 정의를 확장해서, n개의 수의 최소공배수는 n 개의 수들의 배수 중 공통이 되는 가장 작은 숫자가 됩니다. n개의 숫자를 담은 배열 arr이 입력되었을 때 이 수들의 최소공배수를 반환하는 함수, solution을 완성해 주세요. 제한 사항 arr은 길이 1이상, 15이하인 배열입니다. arr의 원소는 100 이하인 자연수입니다. 입출력 예 arr result [2,6,8,14] 168 [1,2,3] 6 기초 코드 class Solution { public int solution(int[] arr) { int answ..
2021-12-11 / 나머지가 1이 되는 수 찾기 문제 설명 자연수 n이 매개변수로 주어집니다. n을 x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x를 return 하도록 solution 함수를 완성해주세요. 답이 항상 존재함은 증명될 수 있습니다. 제한사항 3 ≤ n ≤ 1,000,000 입출력 예 n result 10 3 12 11 입출력 예 설명 입출력 예 #1 10을 3으로 나눈 나머지가 1이고, 3보다 작은 자연수 중에서 문제의 조건을 만족하는 수가 없으므로, 3을 return 해야 합니다. 입출력 예 #2 12를 11로 나눈 나머지가 1이고, 11보다 작은 자연수 중에서 문제의 조건을 만족하는 수가 없으므로, 11을 return 해야 합니다. 기초 코드 class Solution { public int solution(int n) ..
2021-12-11 / 숫자 문자열과 영단어 문제 설명 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자릿수를 영단어로 바꾸는 예시입니다. 1478 → "one4seveneight" 234567 → "23four5six7" 10203 → "1zerotwozero3" 이렇게 숫자의 일부 자릿수가 영단어로 바뀌어졌거나, 혹은 바뀌지 않고 그대로인 문자열 s가 매개변수로 주어집니다. s가 의미하는 원래 숫자를 return 하도록 solution 함수를 완성해주세요. 참고로 각 숫자에 대응되는 영단어는 다음 표와 같습니다. 숫자영단어 0 zero 1 one 2 two 3 three 4 four 5 five 6 six 7 s..
2021-08-18 / 신규 아이디 추천 문제 설명 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 가입하는 유저들이 카카오 아이디 규칙에 맞지 않는 아이디를 입력했을 때, 입력된 아이디와 유사하면서 규칙에 맞는 아이디를 추천해주는 프로그램을 개발하는 것입니다. 다음은 카카오 아이디의 규칙입니다. 아이디의 길이는 3자 이상 15자 이하여야 합니다. 아이디는 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.) 문자만 사용할 수 있습니다. 단, 마침표(.)는 처음과 끝에 사용할 수 없으며 또한 연속으로 사용할 수 없습니다. "네오"는 다음과 같이 7단계의 순차적인 처리 과정을 통해 신규 유저가 입력한 아이..
대충 가늠잡아 본 서버 구조 먼저 내가 맡게 된 부분은 누구(NUGU)와 연결하는 서버 api였다. 누구는 SKT에서 개발한 인공지능이다. 누구에 대해 궁금하다면 밑에 나오는 링크에 들어가서 보면 될 것 같다. 누구(NUGU) 이 서버는 누구를 통해 받은 사용자의 발화에서 식물의 이름을 얻어 해당 식물의 재배 방법을 다시 누구로 보내주는 역할을 한다. 예시를 한번 보자 사용자 : 파는 어떻게 키워? 누구 : 파는 수경 재배를 통해 키워요. 수경 재배에 대해 알려드릴까요? 사용자 : 그래 누구 : 수경 재배는 파의 뿌리 부분을 물에 담그고, 하루에 한번 물에 갈아주면 되는 방법입니다. 사용자의 첫번째 발화에서 '파'라는 식물의 이름을 얻어온다. 그리고 '파'의 재배 방법인 수경재배를 찾아온다. 수경 재배를 사용자에게 알려준 뒤 한번 ..
외부 연동 서버 (Backend proxy) 연결하기, 구축하기 Backend proxy 구축하기 Backend proxy는 응답을 생성하기 위해 필요한 정보를 외부로부터 가져와야 하는 경우 사용하는 서버이다. Play에서는 사용자의 발화를 분석한 내용을 기반으로 적절한 응답을 내보내 주거나 동작을 수행한다. 이 응답에 필요한 정보가 외부 서버로부터 가져와야 하는 경우는 REST API를 통해 요청해야 하며, 음악을 재생하는 등의 디바이스를 동작시키는 명령을 정의하는 것도 Backend proxy에서 처리해야 한다. NUGU 플랫폼의 Dialog Manager는 지정된 포맷으로 요청을 하기 때문에 외부 서비스의 REST API 포맷이 Backend proxy 규격과 다르다면 포맷을 변환해주기 위한 Backend proxy 서버를 개발해야 한다. 서버는 Play Bui..
2021.07.24 / 2.2장 2.2 프런트엔드 자바스크립트 2.2.1 AJAX AJAX(Asynchronous Javascript And XML) : 비동기적 웹 서비스를 개발할 때 사용하는 기법이다. 페이지 이동 없이 서버에 요청을 보내고 응답을 받는 기술이다. 보통 AJAX 요청은 jQuery나 axios 같은 라이브러리를 이용해서 보낸다. 프론트엔드에서 사용하려면 HTML 파일을 하나 만들고 그 안에 script 태그를 추가한다. axios.get('https://www.zerocho.com/api/get') .then((result) => { console.log(result); console.log(result.data); //{} }) .catch((error) => { console.error(error); }); 요청..
2017.07.23 / 2.1장 2.1 ES2015+ 2015년 자바스크립트 문법에 매우 큰 변화가 있었다. 바로 ES2015가 등장한 것이다. 2015년을 기점으로 매년 문법 변경 사항이 발표되고 있으며, 새로운 문법 상세에 대해서도 활발한 논의가 이루고 지고 있다. 2.1.1 const, let 보통 자바스크립트를 배울 때는 var로 변수를 선언한다. 하지만 var은 이제 const와 let이 대체한다. if(true){ var x=3; } console.log(x); //3 if(true){ const y=3; } console.log(y); //에러 메세지 x는 정상적으로 출력이 되지만 y는 에러가 발생한다. const와 let은 블록 스코프를 가지므로 블록 밖에서는 변수에 접근할 수 없다. 블록의 범위는 중괄고 {와 }의 사이..