본문 바로가기
728x90

Java71

[Java] Class Math - Math 클래스 주요 메서드 정리 Math 클래스란? 기본 지수, 로그, 제곱근 및 삼각 함수와 같은 자주 사용되는 기본 숫자 연산을 수행하기 위한 메서드를 구현한 클래스입니다. java.lang 패키지에 포함되어 별도 import를 할 필요가 없습니다. static 메서드이므로 Math.abs()와 같이 직접 호출하여 사용합니다. https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html Math (Java Platform SE 8 ) Returns the value of the first argument raised to the power of the second argument. Special cases: If the second argument is positive or nega.. 2022. 11. 6.
Cos Pro 1급 - 샘플 문제 풀이 4차 8번 (숫자카드 조합하기-재귀함수) 문제 지문 #8 1 이상 9 이하 숫자가 적힌 카드를 이어 붙여 숫자를 만들었습니다. 이때, 숫자 카드를 조합해 만든 수 중에서 n이 몇 번째로 작은 수인지 구하려 합니다. 예를 들어, 숫자 카드 1, 2, 1, 3로 만들 수 있는 수를 작은 순으로 나열하면 [1123, 1132, 1213, 1231, 1312, ... , 3121, 3211]입니다. n이 1312라면, 숫자 카드를 조합해 만든 수 중 n은 n은 5번째로 작은 수입니다. 숫자 카드를 담은 배열 card, 수 n이 매개변수로 주어질 때 숫자 카드를 조합해 만든 수 중에서 n이 몇 번째로 작은 수인지 return 하도록 solution 메서드를 완성해주세요. #####매개변수 설명 카드에 적힌 숫자를 담은 배열 card, 수 n이 solut.. 2022. 11. 5.
[Java] 재귀함수 작성 방법 - 예제와 2가지 고려사항 Cos Pro 샘플 문제 4차 8번은 재귀함수를 작성하는 문제입니다. 너무 복잡해서 이해도 되지 않고, 시험에서 재귀함수를 작성하라는 문제가 나오면 어떻게 풀지 막막해서 재귀함수에 대해 정리해보려고 합니다. ※ 이 내용은 알고리즘 문제 해결 전략(인사이트, 구종만 지음)을 참고하였습니다. 인용 표시가 들어가는 부분은 책의 내용을 그대로 옮겼습니다. 재귀함수??? 우리가 코딩을 할 때, 코드 중 공통적으로 반복되는 부분을 발견할 수 있습니다. 이런 부분은 for문 등으로 묶어서 수행하게 할 수 있지요. 재귀함수는 이런 반복적인 작업을 구현할 때 유용하게 사용되는 개념입니다. 재귀함수란 자신이 수행할 작업을 유사한 형태의 여러 조각으로 쪼갠 뒤 그중 한 조각을 수행하고, 나머지를 자기 자신을 호출해 실행하는.. 2022. 11. 4.
[Java] Class ArrayList<E> 사용법 정리 ArrayList 란? ArrayList는 Java에서 제공하는 컬렉션 프레임워크입니다. 컬렉션 프레임워크는 Java의 자료구조를 표현하고 조작하기 위한 구조를 정의한 것입니다. LIst, Set, Map 등의 Interface가 정의되어있고, 이를 구현한 클래스가 있습니다. 오늘은 그중에서 ArrayList를 알아보겠습니다. ArrayList는 이름과 같이 배열을 List로 구현한 것입니다. Cos Pro 1급 시험을 준비하고 있는데, 배열을 다룰 때 매번 함수를 정의하기가 불편해서 ArrayList를 쓰는 법을 정리해 두려고 합니다. 주요 메서드 아래와 같이 주요 메서드와 결과를 정리해 보았습니다. 0. 객체 생성 ArrayList 객체는 아래와 같이 생성합니다. 컬렉션 프레임워크는 제네릭 타입으로 .. 2022. 11. 1.
Cos Pro 1급 - 샘플 문제 풀이 4차 7번 (게임 유닛 체력 구하기-상속) 문제 지문 #7 게임에 몬스터, 전사, 힐러 세 종류의 유닛이 있습니다. 유닛들의 공격과 힐링에 따른 체력치의 변화를 계산하기 위해 아래와 같이 Unit, Monster, Warrior, Healer 클래스를 작성했습니다. Unit : Unit : 유닛을 나타내는 클래스입니다. HP : 유닛의 체력을 나타냅니다. 유닛의 초기 체력은 1,000입니다. underAttack : 유닛이 공격을 받으면 유닛의 체력을 감소시킵니다. Monster : Monster : 몬스터를 나타내는 클래스이며 Unit을 상속합니다. attakPoint : 몬스터의 공격력 입니다. underAttack : 몬스터가 공격을 받으면 몬스터의 체력을 감소시킵니다. attack : 몬스터의 attackPoint를 return 합니다. .. 2022. 10. 30.
Cos Pro 1급 - 샘플 문제 풀이 4차 6번 (자아도취 수 구하기) 문제 지문 #6 어떤 자리 수 k가 주어졌을 때 각 자릿수의 k 제곱의 합이 원래 수가 되는 수를 자아도취 수라고 합니다. 예를 들어 153은 세 자리 자아도취 수입니다. 자연수 k가 매개변수로 주어질 때, k 자리 자아도취 수들을 배열에 오름차순으로 담아 return 하도록 solution 메소드를 작성하려 합니다. 빈칸을 채워 전체 코드를 완성해주세요. #####매개변수 설명 k가 solution 메소드의 매개변수로 주어집니다. k는 3 이상 6 이하인 자연수입니다. #####return 값 설명 k 자리 자아도취 수를 오름차순으로 정렬한 뒤 배열에 담아 return 합니다. #####예시 k return 3 [153, 370, 371, 407] #####예시 설명 153 = 1^3 + 5^3 + 3.. 2022. 10. 29.
Cos Pro 1급 - 샘플 문제 풀이 4차 5번 (문자열 뒤집기) 문제 지문 #5 다음과 같이 새로운 숫자를 생성할 때, n번째 생성할 숫자를 구하려고 합니다. 1. 첫 번째 수는 1입니다. 2. 다음수를 1의 자리에 추가합니다. 3. 만든 숫자를 뒤집습니다. 4. 숫자 1부터 9까지 추가하면서 2, 3번째 단계를 반복합니다. 5. 숫자 9까지 추가했다면 다시 숫자 1부터 추가합니다. n이 매개변수로 주어질 때, n번째로 생성할 수를 문자열 형태로 return 하는 solution 메서드를 작성하려 합니다. 위 구조를 참고하여 코드가 바르게 동작하도록 빈칸을 채워주세요. #####매개변수 설명 숫자 n이 solution 메소드의 매개변수로 주어집니다. n은 1 이상 1,000 이하인 자연수입니다. #####return값 설명 solution 메소드는 n번째 수를 문자열.. 2022. 10. 29.
Cos Pro 1급 - 샘플 문제 풀이 4차 4번 (마방진 만들기) 문제 지문 #4 마방진이란 가로, 세로, 대각선 방향의 수를 더한 값이 모두 같은 정사각형 행렬입니다. 마방진에는 1부터 정사각형 넓이까지, 수가 하나씩 배치되어야 합니다. 아래는 가로, 세로, 대각선 방향의 수를 더한 값이 모두 34인 4 x 4 마방진입니다. 4 x 4 행렬의 두 빈칸을 채워 행렬을 마방진으로 완성하려 합니다. 빈칸은 0으로 표시합니다. 이를 위해 다음과 같이 프로그램 구조를 작성했습니다. 더보기 1. 두 빈칸의 위치를 찾습니다. 2. 숫자 1 ~ 16 중 존재하지 않는 숫자 2개를 찾습니다. 3. 첫 번째 빈칸에 작은 숫자를, 두 번째 빈칸에 큰 숫자를 넣어 행렬이 마방진이 되는지 검사합니다. 4-1. 마방진이라면 [작은 숫자의 행 번호, 작은 숫자의 열 번호, 작은 숫자, 큰 숫자.. 2022. 10. 28.
Cos Pro 1급 - 샘플 문제 풀이 4차 3번 (스키장 이용권 최소 비용 계산) 문제 지문 #3 정확히 n 일 연속으로 스키장 이용하는데 필요한 최소 비용을 계산하려 합니다. 다음은 스키장에서 판매하는 이용권입니다. 이용권 종류 스키장을 사용할 수 있는 일수 가격 oneDay 구매한 날 하루 동안 사용 가능 oneDayPrice multiDay 구매한 날부터 multiDay일간 사용 가능 multiDayPrice 예를 들어 oneDayPrice = 3, multiDay = 5, multiDayPrice = 14라면, 1일 이용권은 3원, 5일 이용권은 14원입니다. n = 6일 때 정확히 6일 연속으로 스키장을 이용하는데 필요한 비용은 다음과 같이 계산합니다. 1일 이용권 x 6장 → 6 x 3원 = 18원 1일 이용권 x 1장 + 5일 이용권 x 1 장 → 1 x 3원 + 1 x .. 2022. 10. 28.
728x90