Algorithm283 [2020 카카오 기출] 블록 이동하기 문제: https://programmers.co.kr/learn/courses/30/lessons/60063 시뮬레이션 문제입니다. 따져줄 게 참 많아보이는 문제입니다만 아래 두 가지에 대해서만 잘 정하고 풀면 됩니다. 1. 상태를 어떻게 저장할 지 2. 다음 좌표 탐색을 어떻게 할 지 우선 편의를 위해 블록의 2칸 중 한 칸을 HEAD, 다른 한 칸을 TAIL이라고 하겠습니다. 우리는 (HEAD_Y, HEAD_X, TAIl_Y, TAIL_X)로 4개의 정보가 필요하지만 이는 (HEAD_Y, HEAD_X, HEAD가 TAIL과 연결되어 있는 방향) 3개 정보로 똑같이 표현할 수 있습니다. 그래서 상태를 어떻게 저장하느냐에 대해서는 (HEAD_Y, HEAD_X, Direction)으로 표현하겠습니다. (b.. 2020. 8. 11. [2020 카카오 기출] 기둥과 보 설치 문제: https://programmers.co.kr/learn/courses/30/lessons/60061 sooooooyn님의 솔루션으로 해결하였습니다. (https://sooooooyn.tistory.com/32) 기둥과 보를 설치/삭제 시에 어떻게 따져주는 지에 따라 난이도가 달라지는 문제입니다. 서치했던 솔루션 중에 굉장히 심플한 솔루션이라고 생각합니다. 간단하게 두 가지로 모든 경우를 처리합니다. 1. stick[N][N], paper[N][N] 으로 기둥과 보를 표현 2. 삭제 입력이 들어오면 일단 삭제 시켜본 후에, 삭제 시킨 좌표와 연관이 있는 기둥이나 보가 설치 불가능하다고 판정이 나는 경우 롤백시킵니다. 코드: https://github.com/cottory/algorithm/blob.. 2020. 8. 11. [009]Detect Capital 문제: https://leetcode.com/explore/challenge/card/august-leetcoding-challenge/549/week-1-august-1st-august-7th/3409/ 주어진 문자열이 조건에 맞는 문자열인지 확인하는 문제입니다. 주어진 조건은 3가지 입니다. 1. 모두 대문자 2. 모두 소문자 3. 첫 글자만 대문자, 나머지 소문자 class Solution { public boolean detectCapitalUse(String word) { String lowerCase = word.toUpperCase(); String upperCase = word.toLowerCase(); if (word.isEmpty()) return false; else if (word... 2020. 8. 8. [008]Find All Duplicates in an Array 문제: https://leetcode.com/explore/challenge/card/august-leetcoding-challenge/549/week-1-august-1st-august-7th/3414/ 주어지는 nums 배열을 hashMap처럼 사용하면 됩니다. 아래 두 가지 조건 때문에 가능한데요. 1. 주어지는 모든 수가 배열의 인덱스 번호 이하의 숫자. 2. 양수라는 조건. Single Number와 Duplicate Number의 차이점을 방문 표시 여부로 생각하면 됩니다. 특정한 nums[i] 값을 visited[] 배열에서의 index로 보게 되면, (int index = nums[i]) 1. nums[i] 값이 나오면 해당 인덱스 숫자 nums[nums[i]] (== nums[index].. 2020. 8. 7. 이전 1 ··· 40 41 42 43 44 45 46 ··· 71 다음