반응형

코테 39

[프로그래머스][L2] 숫자의 표현 자바 문제 풀이 및 정답

[프로그래머스][L2] 숫자의 표현 자바 문제 풀이 및 정답 프로그래머스 레벨2 숫자의 표현 문제입니다. - 연속된 숫자와 구간의 합 -> 투포인터 - O(n) 자연수의 "연속된" 숫자의 합이라는 점에서 투포인터를 이용할 수 있다고 생각했습니다. 문제를 풀면서 슬라이딩 윈도우와 투포인터의 차이를 알게 됐는데 바로 가변적인 길이를 가지면 투포인터이고 고정적인 크기를 가지면 슬라이딩 윈도우라는 것입니다. 둘 다 연속적인 처리를 할 때 사용하는 알고리즘입니다. 해당 문제는 가변적인 크기를 가지기 때문에 투포인터라고 명명하는 것이 맞겠고 위 방식으로 접근 했을 경우 배열은 아니지만 배열과 같은 자연수들을 left, right 포인트 기점으로 한 번 훑고 지나가기 때문에 O(n)의 시간복잡도를 가지게 됩니다. 정..

코테/문제풀이 2023.06.24

[프로그래머스][L1] 옹알이2 자바 문제 풀이 및 정답

[프로그래머스][L1] 옹알이2 자바 문제 풀이 및 정답 1. 할 수 있는 발음이더라도 같은 발음을 연속으로 못하기 때문에 이에 대한 처리 2. 4가지 조합을 지움(replace) 3. 길이가 0이면 ok 이렇게 1차적으로 먼저 생각할 수 있는데 이렇게 하면 틀립니다. 반례 케이스가 존재하기 때문인데 케이스 중 지우면서 발음할 수 있는 문자가 새로 만들어지는 경우도 존재하기 때문입니다. 코드 보기

코테/문제풀이 2023.06.15

[프로그래머스][L1] 크기가 작은 부분 문자열 자바 문제 풀이 및 정답

[프로그래머스][L1] 크기가 작은 부분 문자열 자바 문제 풀이 및 정답 1. left, right 인덱스 포인트 활용 left, right에 각각 인덱스를 지정해 한칸씩 밀어가면서 숫자를 만들고 만든 숫자를 주어진 숫자와 비교합니다. 슬라이딩 윈도우라고도하는데 박스를 밀어가듯이 풀어나갑니다. 2. 크기의 함정 주어지는 문자열 p의 길이가 최대 18자리입니다. 즉, 18자리 vs 18자리의 숫자를 비교해야하는 경우가 있는데 우리가 흔히 쓰는 int형은 대략 +- 21억의 값까지 가지므로 2,100,000,000 자릿수로 치면 10자리입니다. 즉, 18자리까지 인덱스를 잡아서 숫자로 변환하면 변환이 제대로 안되어 오류가 터집니다. 이 점을 알고 long 타입을 써줘야 합니다. 코드 보러 가기

코테/문제풀이 2023.06.14

[프로그래머스][L1] 콜라 문제 자바 문제 풀이 및 정답

[프로그래머스][L1] 콜라 문제 자바 문제 풀이 및 정답 이렇게 해도 되나? 싶을 정도로 간단한 문제입니다. 이 문제를 보고 만약 레벨1 아니었다면 조금 더 복잡하게 생각하다가 시간을 허비했을수도 있을 것 같습니다. 하지만 단순 연산으로 풀어도 되는 문제이기 때문에 그냥 직관적으로 생각나는 방법으로 풀어도 문제가 없다는걸 알면 어렵지 않게 풀 수 있을 것 같습니다. 코드 보러 가기

코테/문제풀이 2023.06.14

[프로그래머스][L1] 과일 장수 문제 풀이 및 정답

[프로그래머스][L1] 과일 장수 문제 풀이 및 정답 1. 사과 박스를 정렬해줍니다. 정렬하는 이유는 가장 큰 사이즈를 만들기 위해서는 최대한 비슷한것들끼리 묶어야하고 남는건 버리기 때문에 오름차순이든 내림차순이든 정렬해주어야합니다. 2. m길이만큼 값이 큰 곳 부터 시작해 포장합니다. 값이 큰 곳 부터 시작해서 포장해야 버려지는 값이 작기 때문에 최대값을 구할 수 있습니다. 코드 보러 가기

코테/문제풀이 2023.06.14

[프로그래머스][L1] 둘만의 암호 자바 문제 풀이 및 정답

[프로그래머스][L1] 둘만의 암호 자바 문제 풀이 및 정답 문제에서 주어지는 index를 스킵하는 횟수라고 생각하고 접근하면 어렵지 않게 풀어낼 수 있습니다. skipCount를 하나씩 소모하는 개념으로 반복문을 돌리고, 돌리는 와중 skip해야될 알파벳을 만난다면 skipCount를 소모하지 않도록 해줍니다. skip해야할 알파벳인지는 아스키코드를 활용한 배열을 이용했습니다. 코드 보러 가기

코테/문제풀이 2023.06.10

[프로그래머스][L1] 카드 뭉치 자바 문제 풀이 및 정답

[프로그래머스][L1] 카드 뭉치 자바 문제 풀이 및 정답 hashmap을 사용해 무난하게 풀 수 있는 문제입니다. 카드 뭉치가 두 개만 주어진다는점과 goal은 카드 뭉치 안에 있는 단어에 무조건 포함되거나 길이가 카드 뭉치 합친거보다 작거나 같다 등 주어지는 조건을 고려하면 단순히 hashmap을 두 개 만들어 풀면 어렵지 않게 풀릴 수 있습니다. 다만, 케이스 25번에 카드 뭉치 중 카드를 뛰어넘는 예외처리를 안하면 틀리게 되는 케이스가 존재합니다. 카드 뭉치를 뛰어넘을 수 없다는 조건까지 체크하면 오차 없이 풀 수 있습니다. 코드 보러 가기

코테/문제풀이 2023.06.10