알고리즘/프로그래머스
-
[월간 코드 챌린지1] 삼각달팽이 (java, 2차원 배열 생성X)알고리즘/프로그래머스 2022. 9. 29. 18:27
https://school.programmers.co.kr/learn/courses/30/lessons/68645 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [문제풀이 전] 처음 봤을 때, result가 2차원 배열 나열한 느낌이라 2차원 배열로 만들고 다시 1차원 배열에 넣으면서 풀면 되겠다 ~ 싶었는데(n도 1000이하라서), 뭔가 2차원 배열없이도 풀 수 있을 것 같아서 이 방법은 패스하고 생각해봤다. 우선 회전할 때 아래와 같이 진행된다. ↙→↖ 이 3가지 방향으로 진행됨을 알 수 있다. 그리고 화살표의 길이(=숫자의 수)를 보면 n, n-1,..
-
[월간 코드 챌린지1] 풍선 터트리기 (java)알고리즘/프로그래머스 2022. 9. 23. 16:04
https://school.programmers.co.kr/learn/courses/30/lessons/68646# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [문제풀이 전] (문제 해결 전 여러가지 시도) 문제를 코드로 구현해서 실행하면, 시간초과나 메모리초과로 문제를 해결할 수 없다. 해당 문제는 작은 수를 선택하는 것은 한번만 선택 가능하다는 규칙이 있다. 이를 이용하면, 특정 값 기준으로 양쪽에 자신보다 작은 값이 있다면 터트리지 못한다는 뜻이다. (-> 이렇게 되면 최소 두번은 작은 수를 터트려야하기 때문) 하지만, 이걸 그대로 구현하면 n^..
-
[카카오 인턴] 키패드 누르기 (c++, 파이썬)알고리즘/프로그래머스 2022. 7. 27. 20:35
https://school.programmers.co.kr/learn/courses/30/lessons/67256 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [문제풀이 전] 우선 거리계산은 숫자로 하면 될 것 같아서 * = 10, 0 = 11, # = 12로 수정해서 문제를 풀었다 문제에 나온 설명대로 코드를 짜고 거리 계산하는 법만 고민하면 쉽게 풀릴 것 같았다 거리 계산은 뭔가 규칙이 있어서 식으로 정리할 수 있을 것 같아 보다가, 이동하는 것을 아래와 같이 정리할 수 있었고 ← : -1, ↑ : -3, ↓ : +3, → : +1 이를 이용해 문제..
-
카카오프렌즈 컬러링북 (c++)알고리즘/프로그래머스 2022. 7. 27. 11:45
https://school.programmers.co.kr/learn/courses/30/lessons/1829 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr : 전체를 탐색해야하기 때문에 DFS 나 BFS로 풀이하면 됨. DFS와 BFS의 차이는 DFS는 stack으로 구현, BFS는 queue로 구현이라고 생각하면 기억하기 좋다. 재귀함수로 구현하는게 편할 것 같아서 재귀함수로 구현 -> DFS [문제풀이] #include using namespace std; bool check[100][100]; // 영역 재탐색 방지를 위한 배열 int dx[4]..