오늘의 목표

더보기

✔️ 개인과제 제출

✔️ 알고리즘 


⏱️ 오늘의 일정

9:00 ~ 11:00 - 알고리즘 세션 강의
10:00 ~ 11:00 - 프로그래머스 코테 문제 풀기

11:00 ~ 14:00 - 알고리즘 유튜브 강의 듣기
15:00 ~ 19
:00 - 알고리즘 유튜브 문제 풀기 ( 백준 )

19:00 ~ 21:00 - 캠프 알고리즘 문제 풀기


📜 알고리즘 세션 강의

9:00 ~ 11:00 - 알고리즘 세션 강의

 

알고리즘 세션 강의가 있었다.

오늘 내용은 배열과 리스트에 관한 내용이였다.

 

📜 알고리즘 세션 강의

10:00 ~ 11:00 - 프로그래머스 코테 문제 풀기

 

카드 뭉치

https://github.com/YamSaeng/AlgorithmCodingTest/tree/main/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4/1/159994.%E2%80%85%EC%B9%B4%EB%93%9C%E2%80%85%EB%AD%89%EC%B9%98

 

AlgorithmCodingTest/프로그래머스/1/159994. 카드 뭉치 at main · YamSaeng/AlgorithmCodingTest

This is an auto push repository for Baekjoon Online Judge created with [BaekjoonHub](https://github.com/BaekjoonHub/BaekjoonHub). - YamSaeng/AlgorithmCodingTest

github.com

 

📜 알고리즘 유튜브 강의 듣기

11:00 ~ 14:00 - 알고리즘 유튜브 강의 듣기

 

https://www.youtube.com/@BaaaaaaaaaaaaaaaaaaaaarkingDog

 

BaaarkingDog

 

www.youtube.com

 

미뤄두었던 알고리즘 강의를 들었다. 2강 까지 들었고 이제 매일, 적어도 1강 씩은 꾸준히 들을 계획!

 

📜 알고리즘 유튜브 문제 풀기 ( 백준 )

15:00 ~ 19:00 - 알고리즘 유튜브 문제 풀기 ( 백준 )

 

위 강의에서 2강까지 수강하고 나서 연습문제가 백준 사이트를 통해 제공되어서 풀었다.

 

📜 캠프 알고리즘 문제 풀기

19:00 ~ 21:00 - 캠프 알고리즘 문제 풀기

 

저번처럼 이번에도 세션을 듣고나서 문제가 제공되었다.

 

문제 1

**오늘, 두산 베어스와 기아 타이거스가 야구 경기를 하고 있습니다. 이제, 두산 베어스의 공격 차례입니다. 현재 주자는 아무도 없지만, 두산 베어스는 계속해서 1루타(안타)를 치기 시작합니다. 안타를 칠 때마다 주자들은 1루씩 진루합니다. 두산 베어스가 기아 타이거스보다 더 높은 점수를 얻으려면 최소 몇 개의 안타를 쳐야 할까요?

참고로, 두산 베어스와 기아 타이거스의 점수는 프로그램 실행 시 임의적으로 사용자가 줄 수 있으며 두산 베어스에게 1루타의 신이 강림이 되어 타석을 설 때마다 무조건 1루타를 치는 것이 확정이라고 가정해주세요.**

야구의 득점 조건:

  • 타자는 홈에서 타석을 시작합니다.
  • 타자는 홈 → 1루 → 2루 → 3루 → 홈으로 들어오는 순간 1점을 획득합니다.

 

 

function solutionOne(doosanScore, kiaScore) {
    let answer = 0;

    if (doosanScore > kiaScore) {
        return answer;
    }
    else {
        let sub = kiaScore - doosanScore;

        answer = 4 + sub;
    }

    return answer;
}

 

문제 2

이진 배열 nums와 정수 k가 주어졌을 때, 최대 k개의 0을 1로 뒤집을 수 있다면 배열에서 연속된 1의 최대 개수를 반환하세요.

 

예시)

[입력]
const nums = [1,1,1,0,0,0,1,1,1,1,0]
const k = 2

[출력]
6

 

예시)

[입력]
const nums = [0,0,1,1,0,0,1,1,1,0,1,1,0,0,0,1,1,1,1]
const k = 3

[출력]
10

 

좀 억지로 푼거 같긴 하지만.. 

 

function solutionTwo(nums, k) {
    let indexes = [];

    let originalNums = [...nums];
    let originalK = k;

    let i = 0;
    let sums = [];
    let startIndex = 0;

    for (let i = 0; i < nums.length; i++) {
        if (nums[i] == 0) {
            indexes.push(i);

            nums[i] = 1;
            startIndex = i;

            k--;
        }

        if (k == 0) {
            let sum = 0;
            for (let j = 0; j < nums.length; j++) {
                if (nums[j] == 1) {
                    sum += nums[j];
                }
                else {
                    if (sum == 0) {
                        continue;
                    }

                    sums.push(sum);
                    sum = 0;
                }
            }

            if (sum > 0) {
                sums.push(sum);
            }

            nums = [...originalNums];
            k = originalK;
            i = indexes[1] - 1;
            indexes = [];
        }
    }

    return Math.max(...sums);
}

 

🌙 하루를 마치며

주말동안 개인과제를 점검해서 오늘 제출했다. 텍스트 게임을 간만에 만들었는데, 정말 재밌는 시간이였다.

https://github.com/YamSaeng/RoguelikeJavascript

 

GitHub - YamSaeng/RoguelikeJavascript

Contribute to YamSaeng/RoguelikeJavascript development by creating an account on GitHub.

github.com

 

 

 

 

 

 

+ Recent posts