본문 바로가기

Algorithm

(171)
[투 포인터] Day 2. Two Pointers Day 2는 투 포인터 입니다. 이거 사실 매일 해야되는건데;; 그냥 내킬때 하렵니다. 투 포인터가 무엇이냐.. 말 그대로 두 개의 포인터를 갖고 문제를 해결하는 알고리즘입니다. 사실 제가 이때까지 접했던 투 포인터 문제들은 누가 봐도 투 포인터를 사용해서 푸는 문제들이었습니다. 근데 요기 문제는;; 감이 안와서 그냥 검색해서 보고 풀었습니다 ^^~ 문제 바로가기 Squares of a Sorted Array - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 사..
[이분 탐색] Day 1. Binary Search LeetCode에 있는 study plan 중 Algorithm 1을 풀어보겠습니다. 첫 주제는 이분 탐색(Binary Search) 입니다. 이분 탐색을 간단하게 설명하자면, 정렬된 배열에서 특정한 숫자를 효율적으로 찾는 방법입니다. [1, 2, 3, 4, 5, 6] 배열에서 4의 위치를 찾고 싶다 할 때, 가장 먼저 드는 생각은 맨처음부터 하나하나 찾아 나가는 것이죠. 이러면 O(n) 타임이 걸릴겁니다. 하지만 만약 배열의 길이가 무진장 길면?! O(n) 으로 해결이 안되는 경우가 생길 수도 있겠죠. 이럴 때 이분 탐색을 사용하면 O(log n) 타임으로 해결할 수 있습니다. 암튼.. 하루에 2~3 문제씩 있던데 이번엔 이분 탐색 세문제를 풀었습니다. 근데 뭐 너무너무너무 간단한 문제들이라.. 빠르게..
[BFS] 네트워크 - Java 문제 바로가기 코딩테스트 연습 - 네트워크 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있 programmers.co.kr 아주 간단한 BFS 문제입니다. 프로그래머스 구경하다가.. 문제가 너무 쉬워보일길래 한 번 풀어보았습니다. IDE 안쓰고 코드짜는 것도 나름 재밌네요. import java.util.*; class Solution { public boolean[] visited; public List[] graph; public int solution(int n, int[][] computers) { int answer = 0; visited = new bo..
[2021 Dev-Matching: 웹 백엔드 개발자(상반기)][구현/Map 활용] 다단계 칫솔 판매 - Java 문제 바로가기 코딩테스트 연습 - 다단계 칫솔 판매 민호는 다단계 조직을 이용하여 칫솔을 판매하고 있습니다. 판매원이 칫솔을 판매하면 그 이익이 피라미드 조직을 타고 조금씩 분배되는 형태의 판매망입니다. 어느정도 판매가 이루어진 후, programmers.co.kr 이 문제 역시 올해 상반기 데브 매칭 문제입니다. 레벨 3이라는데 3까진 절대 아닌거 같고.. 암튼 걍 시키는 대로 말 잘 들으면 맞출 수 있습니다. import java.util.*; class Solution { Map result = new HashMap(); Map refer = new HashMap(); public int[] solution(String[] enroll, String[] referral, String[] seller..
[2021 Dev-Matching: 웹 백엔드 개발자(상반기)][구현] 행렬 테두리 회전하기 - Java 문제 바로가기 코딩테스트 연습 - 행렬 테두리 회전하기 6 6 [[2,2,5,4],[3,3,6,6],[5,1,6,3]] [8, 10, 25] 3 3 [[1,1,2,2],[1,2,2,3],[2,1,3,2],[2,2,3,3]] [1, 1, 5, 3] programmers.co.kr 올해 여름쯤? 했던 데브 매칭에 나왔던 문제랍니다. 작년 여름에 생애 첫 코테 합격 메일로 데브매칭 코테 합격 메일 받은게 엊그제 같은데 시간 참 빠릅니다. 개인적으로는 이런 행렬갖고 노는 문제 진짜 싫어 합니다. 왜냐하면 진짜 싫기 때문입니다. 다행히 얘는 그런 류 중에서 제일 쉬운 축에 속하지 않나 싶습니다. 겉 테두리만 슥슥 돌려주면 됩니다. class Solution { int[][] matrix; public int[] ..
[2021 카카오 채용연계형 인턴십][구현] 표 편집 - Java 문제 바로가기 코딩테스트 연습 - 표 편집 8 2 ["D 2","C","U 3","C","D 4","C","U 2","Z","Z"] "OOOOXOOO" 8 2 ["D 2","C","U 3","C","D 4","C","U 2","Z","Z","U 1","C"] "OOXOXOOO" programmers.co.kr 휴 한시간 넘게 걸렸다...^^;;; 효율성이 걸린 문제길래 특별한 알고리즘을 요구하는줄 알았는데 그런건 아니었습니다. 근데 첨 푼 방법으로는 효율성 하나도 못맞춤 class Solution { // static class Info { // int row; // int name; // // public Info(int row, int name) { // this.row = row; // this.n..
[2021 카카오 채용연계형 인턴십][BFS] 거리두기 확인하기 - Java 문제 바로가기 코딩테스트 연습 - 거리두기 확인하기 [["POOOP", "OXXOX", "OPXPX", "OOXOX", "POXXP"], ["POOPX", "OXPXP", "PXXXO", "OXXXO", "OOOPP"], ["PXOPX", "OXOXP", "OXPOX", "OXXOP", "PXPOX"], ["OOOXX", "XOOOX", "OOOXX", "OXOOX", "OOOOO"], ["PXPXP", "XPXPX", "PXPXP", "XPXPX", "PXPXP"]] [1, 0, 1, 1, 1] programmers.co.kr 또 오랜만입니다.. ㅎ 그동안 이펙티브 자바는 꾸준히 정리했지만 문제 푸는건 쉽지 않네요. 그래서 친구들이랑 같이 공부하기로 했습니다!! 호호 이번 문제는 아주아주 간단한 BFS..
[2021 카카오 채용연계형 인턴십][문자열 처리] 숫자 문자열과 영단어 - Java 문제 바로가기 코딩테스트 연습 - 숫자 문자열과 영단어 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자 programmers.co.kr 아주 오랜만입니다. PS 꾸준히 하자고 약속했었는데.. 쉽지가 않습니다. 세상은 넓고 재밌는건 너무 많습니다. 사실 삼성 상반기 문제 풀려고 했는데 표준 입력 받는 것도 생각안나길래 걍 접었습니다. 이번에 올해 상반기 카카오 인턴십 문제가 나왔다고 해서 한 번 풀어보려고 합니다. 호호 근데 첫 문제는 너무 쉽네요;; class Solution { public int solution(String s) { String[] arry = {"z..