티스토리 뷰

알고리즘 먼데이 챌린지 배너

 

치킨을 향해 출발

슬랙 커뮤니티 채널에서 보고 상품도 받고 알고리즘도 열심히 풀어보자는 마음으로 참가했다. 마지막 상품인 치킨을 보고 꼬박꼬박 풀었지만 보너스 도장 받는 법을 몰라서 도장이 모자라 치킨은 아쉽게 되었다.. 🥲 그래도 다른 상품들을 여러개 받아서 행복했다...⭐️

 

 

별최몇

주마다 4문제씩 주어졌고 난이도도 다양했다. 2주차부터 별3개가 나오길래 얼마 안 있다가 별5개가 나와서 나는 하나도 못풀겠구나 싶었는데 별2,3개 문제가 자주 나왔고 기억이 맞다면 최고 난이도는 별4개까지 였다. 난이도는 점점 올라가다가 중간쯤에 초기화된 후 다시 올라갔다. 챌린지 기간동안 별3개까지는 어떻게든 풀어보려 했지만 나의 최대는 별 2개까지였던 것 같다........ㅎ.......😭 

 

 

해설을 봐도 모르는 사람 나야나

C++과 Python으로 해설이 이루어졌는데 나는 둘 다 모르는 언어이기 때문에(🥲) 컴퓨터 언어보다 인간 언어로 된 해설을 집중해서 봤던 것 같다. 하지만 난이도가 별 3개이상인 문제는 해설의 대부분이 컴퓨터 언어로 이루어졌고 그래서 나는 아직도 푸는 법을 이해하지 못했다 할 수 있다...🥲 풀수없던 문제는 정해코드를 복붙해서 제출했는데 정해코드로 풀어도 안풀리는 문제도 있었다.. 정답이 정답이 아니라니요....🤯

 

 

제가 파이썬을 한번 해보겠습니다..

먼데이 챌린지를 진행하면서 얻은 점 중에 가장 큰 걸 꼽으라면 파이썬 공부를 시작한 것이다. 그 이전에도 알고리즘을 푸는데 자바스크립트가 불편하다고 들었고, 나도 처음에 fs모듈이나 readline을 쓰는게 어려워서 알고리즘 문제를 푸는 걸 미뤘었다. 파이썬이 언어도 쉬운 편이고 알고리즘 풀기도 괜찮다고 해서 파이썬을 배워야하나 고민하고 있었던 차에 먼데이 챌린지가 파이썬을 시작하는 계기가 됐다.

 

2주차의 합격자 찾기 문제를 나는 이렇게 풀었다. 문제를 풀기 위해 for문을 2582573번 돌렸고 정답을 맞추기는 했다. (사실 리드라인을 쓰는 것도 더 짧은게 있는것 같은데 저렇게 풀었다...)

// 부끄러운 나의 코드 ㅎㅎ
// javascript
const solution = (data) => {
  console.log(data);
};

const readline = require('readline');

(async () => {
  let rl = readline.createInterface({ input: process.stdin });
  let N = null;
  let count = 0;
  let data = [];
	let answer = [];

  for await (const line of rl) {
    if (!N) {
      N = +line;
    } else {
      data.push(line.trim());
      count += 1;
    }
    if (N === count) {
      rl.close();
    }
  }
    for(let i=0; i<data.length; i++){
        data[i] = i % 2 !==0 ? data[i].split(' ').map((el)=>+el) : +data[i]
    }
    for(let i=0;i<data.length; i++){
        data[i] = i % 2 !==0 ? data[i].filter((el)=>data[i].reduce((acc,cur)=>Number(acc)+Number(cur)) / data[i-1]  <= el) : data[i]= data[i];
        }
    for (let i=0; i<data.length; i++){
        if(i % 2 !==0){
            answer.push([data[i-1],data[i].length === 0 ? 1 : data[i].length])
        }
    }
    for(let i=0; i<answer.length; i++){
        answer[i] = answer[i].reverse().join('/')
    }
	
  solution(answer.join('\n'));
  process.exit();
})();

 

그런데 해설에 있는 파이썬 코드를 보는데 이렇게 간단한 코드로 문제를 풀었다.....

# python
import sys
input = sys.stdin.readline

t = int(input())
for 뭔가 반복문..
	
    입력받은거
    뭔가 분리해서 리스트로 바꿈..
    뭔가 평균을 구함..
    변수 = 0
    뭔가 반복문..
    	뭔가 비교함..
        변수 증가함..
print(정답)

 

내가 알고리즘을 잘 못 풀어서 바보같이 구구절절 푼 것도 있겠지만 내가 구구절절 풀 동안 파이썬으로 간단하게 풀어내는 게 너무 어이없고 화나서 파이썬 공부를 더 이상 미룰 수 없다고 생각했다. 그래서 요즘 강의를 차근차근 듣고 있다..

더 이상 미룰 수 없다. 너의 파이썬 나의 알고리즘.

 

 

느낀 점

10월부터 했던 알고리즘 챌린지가 끝났다. 챌린지를 꼬박꼬박 하기는 했지만 알고리즘 실력이 늘은 것 같지는 않다. 이력서랑 포트폴리오를 정리하면서 바쁘지만 그래도 먼데이 챌린지를 하니까 알고리즘 공부를 한다고 위안만 삼았던 것 같다. 4문제 다 풀지도 못하면서..... 😒

9월에 카카오 코테를 봤을 땐 한 문제도 손을 못댔고, 이번에 토스 코테를 봤을 땐 손은 댔는데 1문제 밖에 못 맞췄다....🥲 토스는 난이도 별 2,3개 같았는데 별 2개도 못푸는 내 실력이 너무 보잘 것 없이 느껴졌고 왜 열심히 안했는지 후회가 됐다.😞 알고리즘 문제를 풀면 못푸니까 화가 나서 하기 싫었는데 꼴을 보아하니 이대로는 안될 것 같다. 나중에 또 못 풀어서 후회하기 전에 회피를 멈추고 눈물 흘리면서 꼬박꼬박 풀어야될 것 같다...🥲

728x90
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
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
글 보관함