[Programmers] Level 2. 삼각 달팽이 (C++)
2021. 3. 28. 00:02
알고리즘/Programmers
월간 코드 챌린지 시즌 1 에서 출제된 문제다. 난이도는 Level 2. 문제 풀이 처음에 보자마자 무언가 규칙이 있을 것이라고 생각하고 문제를 풀었다. 규칙을 찾으려고하니 너무 어렵게 느껴져 정말 무식하게...😆 문제를 코드로 그대로 옮겨보았다. 2차원 배열을 사용해서 값을 순서대로 입력받았다. 삼각형 모양을 가지고 있고 왼쪽 변부터 값을 입력한다. 그래서 상태 값을 통해 왼쪽일 경우 0, 아래일 경우 1, 오른쪽일 경우 2 로 정했다. 그리고 2차원 배열에 값을 넣어줘야 하니까 x 와 y 를 이용해 배열의 위치를 정해주었다. 나는 2차원 배열을 이용해서 다음 모양으로 값을 넣어주었다. n = 5 일 경우를 예를 들어 풀어보자. 삼각형의 왼쪽 변부터 값을 채워나간다. ( 상태가 0 일 경우 ) 2차원 ..
[Programmers] Level 2. 위장 (C++)
2019. 8. 31. 18:24
알고리즘/Programmers
소스코드 #include #include #include #include #include using namespace std; int solution(vector clothes) { int answer = 1; vector v; map m; map::iterator iter; for(int i=0; i
[Programmers] Level 2. 스킬트리 (2018 윈터코딩 / C++)
2019. 8. 12. 07:53
알고리즘/Programmers
정리 선행 스킬 순서에 맞춰 스킬을 올려야 가능한 스킬트리가 되고 그렇지 않으면 불가능한 스킬트리가 된다. 그래서 나는 다음과 같이 풀었다. 그런데 너무 지저분하게 풀은 느낌이 있다. 누군가 더 보기좋고 깔끔하게 풀지 않았을까? 그래서, 나는 이렇게 풀어보았다. 1) 유저가 만든 스킬트리 (skill_trees) 에서 선행스킬만 따로 뽑았다. 2) 유저 스킬트리에서 뽑은 선행스킬(check)과 스킬 트리 순서(skill)과 비교했다. 3) 선행 스킬(i)이 일치했을 때 먼저 배워야 하는 선행 스킬(i-1)이 있는지 비교했다. 4) bool 형을 이용해서 선행 스킬(i) 가 있지만 먼저 배워야 하는 선행 스킬(i-1)이 없다면 false, 있다면 true. 5) 비교 결과 가능하다면 카운트를 증가시켜줘서 ..