개발공부/프로그래머스 6

[프로그래머스] PCCP 2번. 석유시추

https://school.programmers.co.kr/learn/courses/30/lessons/250136 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr BFS나 DFS를 이용해 푸는 것은 바로 파악을 했다. 그런데, 이 문제에서 고민해야 할 사항은 따로 있었다. 어떻게 방문한 가로축 지역들을 보관할 것인가? 어떻게 가로축 데이터들을 누적처리할 것인가? 이를 위해 Set, js의 배열의 특성을 활용했다. JS의 배열의 원소는 타입이 같을 필요가 없다는 점과, Set을 이용해 방문한 모든 지역의 가로축 좌표를 담아도 중복이 없게 받을 수 있다는 점..

[프로그래머스] lv.2 전력망을 둘로 나누기

Source Code : https://github.com/JangAJang/Algorithm/blob/main/프로그래머스_Lv2/전력망을%20둘로%20나누기/src/Solution.java https://school.programmers.co.kr/learn/courses/30/lessons/8697 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제의 링크는 여기 있다. 완전탐색의 문제였지만, 완전탐색 하나만 생각해서 풀지 않았던 것 같다. 완전탐색으로 각 경우에 탐색할 때, dfs를 사용했으니 틀린말은 아니겠지...?? 일단, 문제를 어떻게 풀지를..

[프로그래머스] 코딩테스트 Lv.1 신규 아이디 추천

Source Code : https://github.com/JangAJang/Algorithm/blob/main/프로그래머스_Lv1/신규%20아이디%20추천/src/Solution.java 다른 코딩공부나 시험기간이 겹쳐 알고리즘을 열심히 보진 못했지만, 그래도 푸는데 3일이나 걸렸다(말도안되는 이유때문에) 일단 7개의 과정을 거쳐야 한다. 1. 대문자는 전부 소문자로 바꾸어준다. 2. 소문자, 숫자, - , _ , . 를 제외하곤 전부 지워준다. 3. 점이 여러개 있을 경우 점 하나로 바꾸어준다. 4. 처음과 마지막이 점일 경우, 지워준다. 5. 문자열이 비어있을 경우, "a"를 넣어준다. 6. 문자열의 길이가 15를 넘으면 15까지 잘라주고, 마지막이 점이면 점도 지워준다. 7. 길이가 3 이하라면 ..

[프로그래머스] 코딩테스트 Lv.1 완주하지 못한 선수

Source Code : https://github.com/JangAJang/Algorithm/blob/main/프로그래머스_Lv1/완주하지%20못한%20선수/src/Solution.java 생각보다 문제의 수준 자체는 높지 않았던 것 같다. 해시맵으로 도착한 사람의 value를 +1, 도착 명단에 없는 경우 -1을 해주면 되었다. private HashMap includeParticipant(String[] par){ HashMap map = new HashMap(); for(String s : par){ includePersonToMap(s, map); } return map; } private void includePersonToMap(String s, HashMap map){ int count =..

[프로그래머스] 코딩테스트 Lv.1 키패드 누르기

Source Code : https://github.com/JangAJang/Algorithm/blob/main/프로그래머스_Lv1/키패드%20누르기/src/Solution.java 문제를 확인했을 때, 일반 핸드폰에 있는 키패드와 동일한 상태에서 움직여야 한다고 해서 처음엔 키패드를 배열로 구현할 생각을 했다. 근데 문득 든 생각은, '배열이 아니라 그 버튼의 주소를 저장하면 어떨까?' 였다. 기본적으로 0을 제외한 숫자들을 생각해보면, 그 수를 n이라고 했을 때, 그 수의 좌표는 {x/3, x%3}으로 설정해 보았다. 1 {0, 1} 2 {0, 2} 3 {1, 0} 4 {1, 1} 5 {1, 2} 6 {2, 0} 7 {2, 1} 8 {2, 2} 9 {3, 0} 이 상태를 그려보았을 때, 조금 상태가 ..

[프로그래머스] 코딩테스트 Lv.1 완주하지 못한 선수

https://school.programmers.co.kr/learn/courses/30/lessons/42576 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr Source Code : https://github.com/JangAJang/Algorithm/blob/main/프로그래머스_Lv1/완주하지%20못한%20선수/src/Solution.java 코드에 대한 생각은 쉬웠다. 해시맵을 이용했는데, 해시맵은 key, value로 이루어져 있으며, key에 value를 매핑해서 저장시키는 용도이다. key를 이용해 value를 불러오고, 수정하고, 제거하고..