본문 바로가기

분류 전체보기

자바 2의 거듭제곱인지 확인하기 데일리 코딩을 하면서 풀었던 문제인데 수를 입력받아 2의 거듭제곱인지 확인하는 코드를 짜는 것이었다. 내가 생각한 방식과 레퍼런스 코드의 풀이 방법이 달라서 기록하려고 한다. 문제 수를 입력받아 2의 거듭제곱인지 여부를 리턴한다. 입력 인자 1 : num int 타입의 정수 (num >= 1) 출력 boolean 타입 주의 사항 • while문을 사용해야 한다. • Math.log 사용은 금지된다. 입출력 예시 boolean output1 = powerOfTwo(128); System.out.println(output1); // true boolean output2 = powerOfTwo(34); System.out.println(output2); // false 2의 거듭제곱이란 2를 n번 곱한 수이기.. 더보기
자바 유클리드 호제법으로 최대공약수 구하기 오늘 수업 때 나온 연습문제 중에서 최대공약수를 구해야 풀 수 있는 문제가 있었다. 최대공약수 자체는 중학생 수준의 문제였는데, 최대공약수를 구하는 로직이 신기해서 기록해두려고 한다. 유클리드 호제법에 대한 설명은 위키백과에서 긁어 오겠다. 호제법이란 말은 두 수가 서로(互) 상대방 수를 나누어(除)서 결국 원하는 수를 얻는 알고리즘을 나타낸다. 2개의 자연수(또는 정식) a, b에 대해서 a를 b로 나눈 나머지를 r이라 하면(단, a>b), a와 b의 최대공약수는 b와 r의 최대공약수와 같다. 이 성질에 따라, b를 r로 나눈 나머지 r'를 구하고, 다시 r을 r'로 나눈 나머지를 구하는 과정을 반복하여 나머지가 0이 되었을 때 나누는 수가 a와 b의 최대공약수이다. 문제 두 수를 입력받아 최대공약수를.. 더보기
자바 재귀 함수를 이용하여 짝수, 홀수 구분하기 오늘 수업 때는 재귀 함수를 배웠다. 재귀 함수라는 것 자체를 처음 들었고, 개념 자체도 좀 난해했다. 현업에서는 잘 쓰이지 않는다고 하지만, 코딩 테스트에서는 나오는 개념이라고 하니 확실히 알아두어야 할 것 같다. 오늘 풀었던 연습 문제를 어떻게 해결했는지 과정을 적어보려고 한다. 문제 수를 입력받아 짝수인지 여부를 리턴한다. 입력 인자 1 : num int 타입의 정수 출력 boolean 타입 주의 사항 • 함수 isOdd는 재귀 함수 형태로 작성한다. • 반복문 사용은 금지된다. • 나눗셈, 나머지 연산자 사용은 금지된다. • 0은 짝수로 간주한다. 입출력 예시 int output = isEven(13); system.out.println(output); // --> false output = is.. 더보기
SECTION 1 회고 부트캠프가 시작한 지 벌써 한 달이 지났다. 처음 시작할 때 나의 의지는 강했지만, 자바가 더 세서 지고 말았다. 그래도 엄청 빠른 진도로 혹독하게 공부하는 덕분에 하루하루 강해지는 느낌을 받는다. • 오늘 한 일 SECTION 1을 마무리하는 오늘은 처음으로 진도를 나가지 않은 날이다. 그 대신 오늘은 '기술면접 준비'를 하였다. 여러 가지 기술면접 질문들 중에서 3가지를 선택하고 준비를 한 뒤 페어가 면접관 역할을 맡고, 실제 면접을 보는 것처럼 답변을 하는 것이다. 1. 메서드 오버로딩과 메서드 오버라이딩의 차이점을 설명하시오 2. 자바 접근 제어자의 특징과 종류에 대해서 설명하시오 3. 콜렉터와 스트림의 차이점에 대해서 설명하시오 나는 이렇게 질문들을 골랐다. 1번 문제는 실제로 내가 몇 번 헷갈.. 더보기
블로그 만들었습니다 :) 지금은 코딩 기초도 모르는 응애지만 아주 먼 훗날 훌륭한(?) 개발자가 되기까지 노력들을 기록해보려고 해요 참고로 저는 비전공자이고, 현재 코드 스테이츠에서 백엔드 부트캠프를 수강중입니다. 잘 부탁드립니다. 더보기