코딩 테스트

1. 문제 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr2. 풀이 과정위와 같이 롤케잌의 각 조각의 토핑이 올려져있는 상황에서 롤케잌을 두 조각으로 나눌 때, 토핑의 종류를 동일하게 나누는 방법의 갯수를 세는 문제이다.   이 문제를 가장 쉽게 푼다면 나눌 수 있는 각 경우의 수에서 토핑의 종류를 각각 세서 같은지를 체크하는 식으로 풀 것이다..하지만 이렇게 풀이하게 되면 시간복잡도가 O(N^2)이 되게 된다. 최대 토핑 배열의 길이가 100만이므로 O(N^2)으로는 해결할 수 없다. 따라서 나는 다음과 같은 방법으로 풀이했다. 롤케잌을 나눈 첫번째 조각의 ..
1. 문제 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr2. 풀이 과정문제에서 정의한 이진 변환을 1이 될 때까지 반복할 때, 이진변환의 횟수, 제거된 0의 갯수를 세는 문제이다. 문제에서 정의한 이진 변환은 다음과 같다.1. 문자열에서 0을 제거한다.2. 문자열을 0이 제거된 문자열의 길이를 이진법으로 표현한 문자열로 변환한다.  크게 생각할 것 없이 문제 그대로 구현하면 되는 문제이다.바로 코드를 보자. 3. 내 코드import java.util.*;class Solution { public int[] solution(String s) { ..
1. 행렬의 덧셈과 뺄셈각 행렬에서 같은 위치에 있는 값끼리 더하거나 빼는 연산이다.이때 두 행렬의 크기는 같아야 한다. 행렬의 덧셈과 뺄셈을 자바로 구현하면 다음과 같다.// 행렬의 덧셈public static void matrixSum(int[][] arr1, int[][] arr2) { if(arr1.length != arr2.length || arr1[0].length != arr2[0].length){ System.out.println("두 행렬의 크기가 같지 않습니다."); return; } int[][] result = new int[arr1.length][arr1[0].length]; for(int i = 0; i 시간복잡도O(N^2)  2. ..
1. 문제 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 2. 풀이 과정특정 전화번호가 다른 전화번호의 접두어가 되는지를 체크하면 되는 문제이다. 이 문제를 가장 쉽게 해결하는 방법은 하나씩 비교하는 것이다.phone_book[i]와 i가 아닌 다른 전화번호를 하나씩 비교하며 접두어가 되는지 체크하면 된다. 하지만 이 문제의 함정은 입력 크기이다.최대 100만인데 이러면 해당 방법의 시간복잡도인 O(N^2)으로는 풀기 힘들다.따라서 더 효율적인 방법을 생각해봐야 한다. 어떻게 하면 더 효율적으로 해결할 수 있을까? 바로 정렬을 활용하는 것이다.배열을 오름차순..
jaehee1113
'코딩 테스트' 카테고리의 글 목록 (2 Page)