티스토리 뷰

컴퓨타/알고리즘

알고리즘.1

SsOoLl 2023. 6. 1. 03:16

다음과 같이 숫자로 이루어진 배열이 있을 때, 이 배열 내에서 가장 큰 수를 반환하시오

[3, 5, 6, 1, 2, 4]

function find_max_num(array) {
    // 가장 큰 수를 담을 변수를 0번째 인덱스 값 초기화 시키기 !!
    let max_num = array[0];
    for (let i = 0; i < array.length; i++) { // 배열을 순차적으로 탐색
        if (array[i] > max_num) { 
        // 현재 발견한 값이 max_num보다 크게 되면 기존의 max_num을 밀어내고 본인이 max_num으로 등극한다
            max_num = array[i];
        }
    }
    return max_num; // 선출된 max_num을 리턴
}

console.log("정답 = 6 / 현재 풀이 값 = ", find_max_num([3, 5, 6, 1, 2, 4]));
console.log("정답 = 6 / 현재 풀이 값 = ", find_max_num([6, 6, 6]));
console.log("정답 = 1888 / 현재 풀이 값 = ", find_max_num([6, 9, 2, 7, 1888]));

 

입,출력 예시와 같이 입력 문자열에 나타나는 각 알파벳의 종류,갯수를 요약하여 나타내시오.

function summarize_string(target_string) {
    let n = target_string.length;
    let count = 0;
    let result_str = '';

    // 0 ~ n-2까지 루프를 돌아요
    for (let i = 0; i < n - 1; i++) {
        // i번째 문자와 i + 1번째 문자가 같으면 count를 늘린다
        if (target_string[i] === target_string[i + 1]) {
            count++;
        } else {
            // i번째 문자와 i + 1번째 문자가 같지 않으면 카운트를 멈추기
            // 그리고, 현재 문자랑 카운트를 혼합해서 요약표현을 만든다 또 또 count 초기화 !!!
            result_str += target_string[i] + String(count + 1) + '/';
            count = 0;
        }
    }
    // 위에서 n-1 까지 루프를 안 돌았던 이유는 n-1이 마지막 문자이기 때문에 결산을 하기 위함!
    result_str += target_string[n - 1] + String(count + 1);

    return result_str;
}

let input_str = "acccdeee";

console.log(summarize_string(input_str));

 

알고리즘 첫 강의를 들었는데 흠.. 내가 생각하던 문제해설이나 생각보다 조금 더 난이도가 있는것 같아서 버벅버벅;;

분명 공부 한 내용인데 막상 코드로 풀어보자니 손이 안떨어진다 ㅋㅋㅋㅋㅋㅋ

 

일단 당장은 해설문을 달아 올렸지만 다음에는 직접 코드를 맞춰보는 연습이 꼭 꼭 필요하다는 것 !! 

진짜 코드는 많이 쳐보고 많이 봐야하는것이 진리    

'컴퓨타 > 알고리즘' 카테고리의 다른 글

알고리즘.6  (0) 2023.06.09
알고리즘.5  (0) 2023.06.08
알고리즘.4  (0) 2023.06.07
알고리즘.3  (0) 2023.06.05
알고리즘 .2  (0) 2023.06.01
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함