Free Lines Arrow
본문 바로가기
728x90

Algorithm77

[프로그래머스] 쇠막대 문제 분석 1. 처음에 어떻게 풀어야 할까 하다가 몇번 실패 후 다시 풀어 봤다. 2. 스택문제여서 스택을 이용하자 3. () 는 컷을 하는 기준이 이기 때문에 () = C 로 치환했다. 4. "(" 일 경우 stack push를 해주었다. 5. C 일경우 stack 의 사이즈를 더해준다. - 이유는 ( ( C 일경우는 막대가 2개 들어 왔다 C 로 막대를 자르면 자른 지점 까지 기준으로 2개가 된다. 6 ")" 닫힌 부분이 나오면 +1 을 해준다. 막대의 끝이기 때문에 다음과 같은 공식이 나온다 - 잘라진 부분 + 나머지 부분 구현 import java.util.*; public class Main { public static void main (String[] args) { Scanner input .. 2021. 8. 10.
[프로그래머스] 전화번호 목록 문제 분석 해쉬 문제이지만 굳이 해쉬로 풀어도 되지 않을것 같았다. 1. 2중 for문으로 푼다. - 효율성에서 탈락 2. 사전순으로 정렬해서 푼다. - 제일 깔끔했다. 사전순으로 정렬하면 참 쉽다 - 예를 들어서 사전순으로 정렬한다면 다음과 같다. - 가나 가나다 나다 나다라 나다라마바사 그럼 앞 뒤 만 비교해주면 끝난다. 구현 import java.util.*; class Solution { public boolean solution(String[] phone_book) { boolean answer = true; Arrays.sort(phone_book); for(int i = 0; i < phone_book.length-1; i++) { if(phone_book[i+1].indexOf(phone_.. 2021. 8. 9.
[프로그래머스] 카카오프렌즈 컬러링북 문제 분석 완전탐색 문제이다. 그림 색은 배열의 숫자로 구분이 된다. 같은색이더라도 연결이 안되어 있으면 다른 영역이라고 판단한다. 무슨말인가? 그림으로 보면 쉽다. 탐색하기 picture[0][0] 의 값은 1 이다. 그럼 picture[0][0] 부터 출발한다. 1값과 동일한지 체크 하면서 방문한다. 방문을 했으면 방문했다고 체크한다. 1번에 대한 탐색을 완료한다. 그렇게 가다보면 picture[0][1] 이미 방문했으니 넘어가고 새로운 값 2가 나타나면 2값을 기준으로 다시 탐색한다. 구현 class Solution { private int mNumberOfArea; private int mMaxSizeOfOnerArea; //위 아래 왼쪽 오른쪽 탐색방향 정의 private int []dirx =.. 2021. 8. 4.
[Algorithm] DAG(Directed Acyclic Graph) DAG 란? Directed Acyclic Graph 방향을 가지지만 순환이 없는 방향 그래프이다. 왼쪽에서 오른쪽 방향으로 이동한다. 용어 그래프에서 사용하는 용어들이있다. Indgree: 타겟노드에 들어오는 엣지의수 Outdgree: 타겟노드에서 나가는 엣지의수 Incomming: 들어오는 엣지 Outcomming: 나가는 엣지 비 순환이란? A 노드에서 출발했다면 A 노드로 다시 돌아오는 일이 없어야 한다. 위상정렬 DAG 에서 노드들의 순서화 단 모든 Edge(Vi,Vj)에 대해서 i 2021. 8. 3.
728x90
반응형