본문 바로가기

전체 글122

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.
제일 작은 수 제거하기 / 프로그래머스 연습문제 / programmers / level1 / Java https://programmers.co.kr/learn/courses/30/lessons/12935 코딩테스트 연습 - 제일 작은 수 제거하기 정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1 programmers.co.kr 이번 문제는 최소값을 찾는 방법에 대한? 문제라고 보면 될 것 같다. 최소값을 찾을때는 몇가지 방법이 있는데 1. 정렬을 직접 구현 2. Sort함수를 사용 3. Stream을 이용 1번과 2번은 몇 번 해봐서 이번에는 스트림을 사용해 보았다. [작성코드] import java.util.Arrays; public .. 2021. 7. 31.
예산 / 프로그래머스 연습문제 / programmers / level1 / Java https://programmers.co.kr/learn/courses/30/lessons/12982 코딩테스트 연습 - 예산 S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는 programmers.co.kr 이번건 연습문제 수준이라 간단하게 작성하고 넘어간다. 예산을 배분할 수 있는 최대 부서 개수를 리턴하는 알고리즘인데, 단순히 Sort를 하여 오름차순으로 정렬 후 배열의 길이만큼 반복하면서 예산이 0이 될때까지 부서의 갯수를 더해주면 된다. [작성코드] package com.level01; import java.util.Arrays; public class Budg.. 2021. 7. 30.
3진법 뒤집기 / 프로그래머스 연습문제 / programmers / level1 / Java https://programmers.co.kr/learn/courses/30/lessons/68935 코딩테스트 연습 - 3진법 뒤집기 자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 n은 1 이상 100,000,000 이하인 자연수 programmers.co.kr 이번 문제의 핵심은 진수에 대해 이해하는 것이다. 10진수를 n진수로 변환하는 과정은 해당 숫자가 0이 되기전까지 n으로 나눈 나머지를 차례대로 적고, n으로 나눈 수를 계속 n으로 나누면서 과정을 반복하면 된다. 10진수 45를 3진수로 변환하는 예시 45 / 3 = 15 ... 나머지 0 15 / 3 = 5 .... 2021. 7. 29.
숫자 문자열과 영단어 / 프로그래머스 연습문제 / programmers / level1 / Java https://programmers.co.kr/learn/courses/30/lessons/81301 코딩테스트 연습 - 숫자 문자열과 영단어 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자 programmers.co.kr 이번에 지원했던 카카오 채용연계형 인턴십에 나왔던 문제다. 후...지금도 알알못이긴 하지만 당시에는 더욱 잘 몰랐기에 너무 어려웠던 역시나 탈랐했었다. 다만, 프로그래머스에 문제가 올라와서 테스트때 작성했던 코드와는 다른 방법으로 한번 풀어봤다. 이전에는 이런식으로 풀이했다. 1. 주어진 문자열의 길이만큼 반복문을 실행한다. 2. 임시 String 값.. 2021. 7. 27.
개발자로써 첫 회사, 첫 출근, 첫 주말 / 비전공자로써 기존 직군과의 비교? 평생 공부를 하시는 분들 앞에서 부끄럽지만 8개월 동안 쉬지 않고 달려온 결과, 웹프로그래머로서 첫 회사에 취업하고 첫 출근을 했다. 그 동안 나에 대한 보상으로 깃허브 잔디와 블로그를 약 2주간 하지 않았다. (고... 변명해본다. 앞으로 다시 힘내자...!) 뭐 회사 생활이야 나름 다년간 해봤으니 첫 출근의 떨림 같은건 없었다. 그런 부분이 상사분들에게도 보였는지, 개발 외에 부분에 대해서는 내가 알아서 하니 싫어하지는 않는 눈치였다. (아님 말고...) 첫 날에는 대부분 공통적으로 적용되는 개발 환경 셋팅이었다. 회사에서 사용하는 협업툴에 대한 숙지, 어떤 프레임워크를 사용하고, 어떤 IDE를 사용하고, 그 외 어떤 서포트 프로그램을 사용하는지 어떻게 사용하는지 등등 을 가볍게 배우고 넘어갔다. 회.. 2021. 7. 26.
다트게임 / 프로그래머스 연습문제 / programmers / level1 / Java https://programmers.co.kr/learn/courses/30/lessons/17682 코딩테스트 연습 - [1차] 다트 게임 programmers.co.kr 이번문제는 다양한 방식으로 풀이가 가능한 것 같았다. 후...어제 과음을 해서 그런가 생각이 길게 이어지지 않아서...코드가 조금 복잡할지라도 순차적으로 해결하려고 노력했다. [알고리즘 Flow] 1. 각각의 점수를 분해하여 list 배열에 담아준다. (1S*, 2D# ... 이런식으로) 2. list.size 만큼 for문으로 각각의 점수를 계산한다. 3. *일경우에는 i > 0 크면 i - 1과 i번지의 숫자들을 x2해준다. i == 0 이면 해당 i만 x2 [작성코드] package com.level01; import java... 2021. 7. 4.