본문 바로가기

TIL/알고리즘

(19)
프로그래머스_핸드폰 번호 가리기 핸드폰 번호 가리기 문제 프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다. 전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요. 제한사항 s는 길이 4 이상, 20이하인 문자열입니다. 입출력 phone_number return "01033334444" "***4444" "027778888" "*****8888" 입출력 예 설명 없음 풀이 과정 뒷 4자리를 제외한 숫자를 마스킹 하므로 받아오는 phone_number의 길이에서 4를 뺴준 만큼 "*" 로 answer에 담아준다. 나머지 4자리는 String(문자열)으로 받아오는 phone..
[TIL] 프로그래머스_로또의 최고 순위와 최저 순위 항해 11일차 기본 28문제를 풀면서 틈틈히 하루에 하나씩 심화 문제를 풀었다. 로또의 최고 순위와 최저 순위 문제 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 방식: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ... 2번 수포자가 찍는 방식: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ... 3번 수포자가 찍는 방식: 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, ... 1번 문제부터 마지막 문제까지의 정답이 순서대로 들은 배열 answers가 주어졌..
[TIL] 프로그래머스_제일 작은 수 제거하기 항해 10일차 알고리즘 뭔가... 해결하면 성취감이 있다. 이게 재미를 느끼는건가? 제일 작은 수 제거하기 문제 정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴 하고, [10]면 [-1]을 리턴 합니다. 제한사항 arr은 길이 1 이상인 배열입니다. 인덱스 i, j에 대해 i ≠ j이면 arr[i] ≠ arr[j] 입니다. 입출력 arr return [4,3,2,1] [4,3,2] [10] [-1] 입출력 예 설명 입출력 예 #1121은 양의 정수 11의 제곱이므로, (11+1)를 제곱한 144를 리턴합..
[TIL] 프로그래머스_자릿수 더하기 항해 9일차 오늘 하루도 알고리즘 문제를 계속 풀었고, 협력사 채용 세션이 있었다. 지금까진 IT회사에서 근무 경험이 없어 모든게 새로웠고 더 의지를 다질 수 있는 계기가 되었다. 채용 세션이 끝나고 자체 모의고사가 있었다. 총 2문제였고 나는 1번을 선택하여 문제를 풀고 나왔다. 나와보니 2번 문제에 대해 많은 토론이 있어 2번 문제도 함께 풀어보았다. 자릿수 더하기 문제 자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요. 예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다. 제한사항 N의 범위 : 100,000,000 이하의 자연수 입출력 N answer 123 6 987 24 입출력 예 설명 입출력 예 #1 문제의..
[TIL] 프로그래머스_완주하지 못한 선수 항해 8일차 1주일간 총 40문제(기본 28문제 + 심화 12문제)를 해결하는 목적으로 팀원들과 함께 해결중이며 매일 각자 1~2개씩 본인이 구현 했던 코드를 리뷰하고 있다. 완주하지 못한 선수 문제 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요. 제한사항 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다. completion의 길이는 participant의 길이보다 1 작습니다. 참가자의 이름은 1..
[TIL] 프로그래머스_나누어 떨어지는 숫자 배열 항해 6일차 오늘도 알고리즘 문제를 풀고있다. 전에 했던게 조금씩 생각이난다. 전에도 잘하진 못했지만 다시 조금씩 손에 익히려고 노력중이다. 문제를 풀어가며 생각이 안나는 문법은 찾아보면서 하는중이다. 알고리즘을 풀어보니 역시나 어렵다.. 차근차근 하나씩 생각해보며 풀어나가는중이다.. 알고리즘은 역시 꾸준하게 해야한다. 나누어 떨어지는 숫자 배열 문제 array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요. divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요. 제한사항 arr은 자연수를 담은 배열입니다. 정수 i, j에 대해 i ≠ j 이면 arr[i] ≠ arr[j] 입니다..
[TIL] 항해99 Day 5 항해 5일차 미니프로젝트를 마무리하고 [Chapter 2] 알고리즘 기초에 들어갔다. Chapter 2 부터는 또 다른 팀원들과 함께 하게 되었다. 1주일간 28문제를 풀어야 하기에 하루 4문제 이상은 풀어야 한다. 추가 12문제가 더 있어서 최대한 완벽하게 이해하고 추가 문제를 해결 해보려고 한다. 혼자 PS를 하고 다른 사람들의 코드를 들여다 보는것도 좋지만 확실히 모여서 본인들이 직접 해결 한 부분을 말로 설명해주니 더 확실히 이해가 잘 된다. 오랜만에 해보니 쉬운 문제들도 처음에 복잡하게 해결하려는 방향으로 흘러갔다. 조건문을 하나만 사용하고 반복문으로 해결하는 문제를 나는 각 조건문 마다 반복문을 넣고 있었다. PS는 확실히 자주 해야한다. 아니 매일 한개의 문제라도 풀어야 잊혀지지 않는 것 같..
[TIL] 항해99 Day 3 항해 3일차 여전히 삽질중이다. 팀원들과 아직 구현하지 못한 기능에 대해 분담하여 해결하기로 하였다. 회원가입 과정에서 입력 값들이 설정한 형식에 맞게 입력되는지, 패스워드는 해시 함수를 사용하여 암호화되어 저장되는지, 로그인 과정에서 토큰이 발행되어 쿠키에 저장이 되는지를 찾아보았다. 회원가입 function is_nickname(asValue) { var regExp = /^(?=.*[a-zA-Z])[-a-zA-Z0-9_.]{2,10}$/; //(?=.*[a-zA-Z])는 필수 입력, [-a-zA-Z0-9_.]일반적인 입력 //{2,10} 2~10자 길이 return regExp.test(asValue); } function is_password(asValue) { var regExp = /^(?=...
[TIL] 항해99 Day 1 항해99를 시작한 첫날이다. 시작 전 많은 불안과 기대가 공존하였지만 퇴사를 결심한 나의 선택이기에 시작이 없다면 결과도 없을테니 이대로 나아가는 것 밖엔 답이 없다. 지금 내가 할 수 있는 것은 99일간 항해를 같이 하게 될 팀원들과 나를 믿고 앞으로 나아가는 것 뿐이다. 언젠가 이 시간을 팀원들과 추억을 곱씹으며 웃을 수 있는 날이 오길 팀원들과의 첫만남 & 미니프로젝트의 시작 2조의 팀원들과 간단히 자기소개 후 S.A(Starting Assignment) 작성 및 공동작업용 github 생성 차박 후기 플랫폼 제작 결정 차박을 즐기는 회원들이 후기를 남겨 다른 회원에게 추천 및 소개를 할 수 있는 플렛폼을 제작하기로 하였다. 와이어프레임(Wireframe) 구상 1일차 마치며... github 메인..