본문 바로가기

Algorithm/Programmers14

[프로그래머스] 단체사진 찍기 자바 문제 코딩테스트 연습 - 단체사진 찍기 단체사진 찍기 가을을 맞아 카카오프렌즈는 단체로 소풍을 떠났다. 즐거운 시간을 보내고 마지막에 단체사진을 찍기 위해 카메라 앞에 일렬로 나란히 섰다. 그런데 각자가 원하는 배치가 모두 programmers.co.kr 문제 풀이 나는 순열 함수를 따로 만들어서 모든 경우에 한해 조건 검사하고 맞는 경우에 answer값을 증가하여 답을 구했다. char배열에 각 이름을 담아 인덱스 번호를 이용하여 순열 결과로 나온 숫자와 매칭하여 조건 검사를 했다. 근데 검사할 때마다 모든 조건에 대해 split하고 검사하는 거라 뭔가 썩 좋은 방법같지는 않다고 생각된다... 소스 코드 class Solution { static int answer; static int n; stati.. 2022. 1. 21.
[프로그래머스] 등굣길 자바 문제 (DP) 코딩테스트 연습 - 등굣길 계속되는 폭우로 일부 지역이 물에 잠겼습니다. 물에 잠기지 않은 지역을 통해 학교를 가려고 합니다. 집에서 학교까지 가는 길은 m x n 크기의 격자모양으로 나타낼 수 있습니다. 아래 그림은 m = programmers.co.kr 문제 풀이 일단 문제 조건에서 헷갈렸던 것은 mxn행렬이 [m][n]이 아니라 [n][m]을 뜻했다. 그리고 오른쪽과 아래쪽으로만 움직이는 조건 이 큰 힌트가 되었다. 1. 첫번째 행으로 갈 수 있는 최단경로 경우의 수는 오른쪽으로 이동하는 경우이므로 모두 1로 매핑한다. 2. 두번째 행도 마찬가지로 각 행의 자리로 갈 수 있는 최단경로의 개수를 매핑한다. 3. 표를 채우다 보면 각 자리의 위와 아래의 값을 더하는 것을 알 수 있다. (.. 2022. 1. 11.
[프로그래머스] 키패드 누르기(2020카카오 인턴십) 자바 문제 코딩테스트 연습 - 키패드 누르기 [1, 3, 4, 5, 8, 2, 1, 4, 5, 9, 5] "right" "LRLLLRLLRRL" [7, 0, 8, 2, 8, 3, 1, 5, 7, 6, 2] "left" "LRLLRRLLLRR" [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] "right" "LLRLLRLLRL" programmers.co.kr 문제 풀이 int[][] keypad : 키패드의 번호를 2차원 배열로 저장 int L_row, L_col : 현재 왼쪽 손이 올라가져있는 키패드 위치의 행과 열 인덱스를 담아둘 변수 int R_row, R_col : 현재 오른쪽 손이 올라가져 있는 키패드의 행렬 인덱스 값 int hand = 오른손잡이, 왼손잡이의 여부 변수를 원하는 결과값(R,.. 2021. 11. 25.
[프로그래머스] 네트워크 자바 문제 코딩테스트 연습 - 네트워크 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있 programmers.co.kr 문제풀이 이 문제는 쉬워서 그런진 몰라도 DFS문제치고 굉장히 빨리 풀어서 기쁘다,,ㅎㅎ 컴퓨터로 주어지는 배열을 노드로 보고, 노드를 차례차례 방문하여 연결되어 있는 끝까지 가서 방문 여부를 표시하면 되기 때문에 이 문제도 DFS로 구현하면 된다. 처음 0번 노드부터 시작하여 연결된 노드(1표시)를 탐색하여 visted배열에 표시한다 (computers 열의 값 확인) 그리고 끊기면 visited배열 중에서 아직 방문안된(false표시인) 노드부터 .. 2021. 11. 19.
[프로그래머스] 타겟 넘버 자바 문제 코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+ programmers.co.kr 문제 풀이 DFS/BFS 문제를 풀고 싶어서 DFS카테고리에서 문제를 골랐는데, 아무리 생각해도 완전탐색으로 푸는 것 같았다. 그래서 찾아보니 DFS(또는 BFS)는 모든 노드를 탐색하는 것을 목표로 하는 완전탐색을 기반으로 한 탐색 기법이라고 나왔다. 아마 완전탐색을 구현하는 방법 중 하나로 DFS/BFS가 포함되어 있나보다..? 더하기, 빼기 연산밖에 하지 못하므로 주어진 숫자 배열에서 더할 숫자만 .. 2021. 11. 18.
[프로그래머스] 괄호 변환 자바 문제 https://programmers.co.kr/learn/courses/30/lessons/60058 코딩테스트 연습 - 괄호 변환 카카오에 신입 개발자로 입사한 "콘"은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를 programmers.co.kr 문제 풀이 문제에 제시된 변환 알고리즘을 하나씩 구현하다 보면 됨 소스 코드 class Solution { public static String solution(String p) { String u = "", v = ""; int a = 0, b = 0; String[] arr = p.split(""); if(p.equals("")) return ""; fo.. 2021. 11. 7.