본문 바로가기

전체 글101

10일차 (알고리즘6) 오늘은 숫자 배열을 입력하면 배열 요소의 수/2 만큼 1, 2, 3 ... 3, 2, 1과 같은 문자열로 출력하는 알고리즘 문제를 리뷰하고자 한다. 문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/134240 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr // food의 길이만큼 반복해서 홀수면 -1, 짝수면 그대로 두고 /2를 해서 total에 할당 for (let i = 1; i < food.length; i++) { total.push(food[i] % 2 !== 0 ? (food[.. 2023. 8. 25.
9일차 (알고리즘5) 이번 문제는 배열을 돌면서 각각의 값들을 더한 뒤, 중복된 값들을 제거하고 오름차순으로 정렬하는 문제이다. // https://school.programmers.co.kr/learn/courses/30/lessons/68644 // 두 개 뽑아서 더하기 function solution(numbers) { var answer = []; let set = new Set(); // numbers 반복 for (let i = 0; i < numbers.length; i++) { // 첫 번째 값 고정 let fixed = numbers[i]; // 나머지 값들 돌면서 첫 번째 값과 더하기 for (let j = i + 1; j < numbers.length; j++) { let sum = fixed + numb.. 2023. 8. 24.
8일차 (알고리즘4) 시저 암호 문제 항해 99에서 알고리즘 문제를 풀면서 처음으로 어떻게 풀어야 될지 감을 못 잡겠는 문제를 만났다... 시저 암호 문제였는데, 주어진 문자열을 n만큼 이동시킨 값을 출력하는 것이었다. 오늘은 검색을 통해 찾아본 코드를 리뷰하고자 한다. // https://school.programmers.co.kr/learn/courses/30/lessons/12926 // 시저 암호 function solution(s, n) { let upper = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" let lower = "abcdefghijklmnopqrstuvwxyz" let newString = "" // 문자열 반복 시작 for(let i=0; i= newText.length){ idx -= ne.. 2023. 8. 22.
7일차 (알고리즘3) 알고리즘 문제 설명 문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요. 처음에 이 문제를 풀 때 주어진 문자열 s를 모두 대문자로 변경한 뒤, 홀수번째 알파벳을 toLowerCase() 함수와 replace() 함수를 사용하여 바꾸는 방법을 시도하였다. 그 결과, 몇몇 케이스에서 실패하는 경우가 발생했는데, 원인을 찾아본 결과 replace() 함수를 사용할 때 중첩 루프 문제가 발생한다는 것이었다. 중첩루프가 뭔지 아직 정확히 이해하지는 못했지만 jeep, cool과 같이 같은 단어가 연속으로 나왔을 때 발생하는 문제였다... 2023. 8. 22.
728x90