본문 바로가기

연습문제17

짝지어 제거하기 / 프로그래머스 연습문제 / programmers / level2 / Java https://programmers.co.kr/learn/courses/30/lessons/12973 코딩테스트 연습 - 짝지어 제거하기 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙 programmers.co.kr 역시 레벨2는 쉽게 풀리지 않는다. 1레벨 처럼 for, if, while 만으로도 풀수는 있겠으나, 효율성 측면에서 실패한다. 하여 본격적으로 자바의 Stack을 활용해보기로 했다. [알고리즘 flow] 1. Stack 선언 2. 문자열의 길이만큼 for 문 실행 3. Stack이 비어있으면 push 4. 맨위의 스택과 s.charAt(i) 비교 .. 2021. 8. 5.
124 나라의 숫자 / 프로그래머스 연습문제 / programmers / level2 / Java https://programmers.co.kr/learn/courses/30/lessons/12899# 코딩테스트 연습 - 124 나라의 숫자 programmers.co.kr 연습문제 중에서도 꽤 난이도가 있는 문제이다. 진수변환의 규칙을 기본적으로 잘 알아야지만이 해당 응용문제를 원활하게 풀 수가 있을 것이다. (알고리즘은 진짜 수학이다 ㅠ) 특히 3진수 변환과 많이 유사한다. 이 부분을 잘 들여다봐 보자 [숫자의 규칙] 10진법 124나라 3진수 1 1 1 2 2 2 3 4 10 4 11 11 5 12 12 6 14 20 7 21 21 8 22 22 9 24 100 10 41 101 숫자가 3으로 나누어 떨어질때 3진수는 0으로 처리하지만 124나라는 그런 처리는 없고 4가 되어 버린다. 그래서 3으.. 2021. 8. 3.
정수 제곱근 판별 / 프로그래머스 연습문제 / programmers / level1 / Java https://programmers.co.kr/learn/courses/30/lessons/12934 코딩테스트 연습 - 정수 제곱근 판별 임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다. n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함 programmers.co.kr 이번 문제는 제곱근인지 아닌지 확인하는 건데, 사실 직접 풀면 수학적 난이도가 그렇게 높은 부분은 아니다. 하여 금방 풀 수 있을 줄 알았는데... 자바의 기본을 잠시 망각하면 풀기가 애매할 수도 있게 된다. 실제로 푸는 방법은 알겠는데, 그것 때문에 조금 애를 먹었다 ㅠ 역시 모든 문제는 이유가 있는 법! 자바의 메소드 중 하나인.. 2021. 8. 2.
콜라츠 추측 / 프로그래머스 연습문제 / programmers / level1 / Java https://programmers.co.kr/learn/courses/30/lessons/12943 코딩테스트 연습 - 콜라츠 추측 1937년 Collatz란 사람에 의해 제기된 이 추측은, 주어진 수가 1이 될때까지 다음 작업을 반복하면, 모든 수를 1로 만들 수 있다는 추측입니다. 작업은 다음과 같습니다. 1-1. 입력된 수가 짝수라면 2 programmers.co.kr 이번문제는 콜라츠 추측이다. 콜라츠라는 사람이 제기했다는데, 뭐 특정 조건을 반복하면 1이 나온다는 것이다. 그래서 몇 번 안에 결과가 나오는지에 대한 건데, 요건 그냥 문제를 보고 그 알고리즘을 그대로 구현하려고만 해도 금방 맞출 수 있는 수준이다. [규칙] 1-1. 입력된 수가 짝수라면 2로 나눕니다. 1-2. 입력된 수가 홀수.. 2021. 8. 1.