TIL #62

loci·2024년 7월 1일
0

TIL

목록 보기
60/111

롤케이크 자르기

두 명이 topping의 배열 요소들을 순서대로 나눠 가진다고 했을때 각자 가지고 있는 topping요소의 가짓수가 같은 경우가 몇개인지 구해야한다.

처음엔 제한사항이 topping의 길이가 < 1,000,000 이라 안될것 같았지만 다른 방법이 안떠올라 0~i, i~size-1 으로 배열을 잘라 set에 넣어줘 중복을 제거해 길이를 비교해 같으면 카운트 해주는 식으로 풀었는데 역시나 채점시에 시간이 초과되 다른사람의 풀이를 참고했다.


class Solution {
    fun solution(topping: IntArray): Int {
        var answer = 0
        val leftSet = mutableSetOf<Int>()
        val rightMap = mutableMapOf<Int, Int>()

        for (top in topping) {
            rightMap[top] = rightMap.getOrDefault(top, 0) + 1
        }

        for (i in topping.indices) {
            val top = topping[i]

            leftSet.add(top)

            rightMap[top] = rightMap[top]!! - 1
            if (rightMap[top] == 0) {
                rightMap.remove(top)
            }

            if (leftSet.size == rightMap.size) {
                answer++
            } else if (leftSet.size > rightMap.size){
                break
            }
        }

        return answer
    }
}

Git 협업 특강

실제로는 로컬컴퓨터에서 merge를 잘 하지 않고 commit을 push github에서 pull request로 합치게 된다. 이유는 코드리뷰를 할 수 있기 때문이다.

main이 배포용 branch고 dev branch를 새로 만들어서 dev branch를 거쳐 가도록 해야한다. 그래서 dev를 defult branch로 설정한다.

기능 개발을 할때 팀원은 repository clone을 해서 프로젝트를 받아와서 각 기능개발에 대한 branch를 생성한다. (ex. feature/login)
commit한 코드를 push하고 github에서 dev에 merge하려고 할 때 오류가 발생하면 다른사람의 코드를 pull해서 오류가 있는지 테스트해 정상작동한다면 다시 push해주고 github에서 dev branch에 merge 해주면 된다.

git branch name
git switch name
git switch -c name
git checkout name
git checkout -b name
profile
편리한 개발자

0개의 댓글