일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 자료불러오기
- 객체
- 2차원 객체배열
- class
- PHP
- 클래스
- 전의 의존성
- amazon
- AWS
- guard
- 상속
- Java
- 옵셔널
- 사용법
- 제어문
- Gradle
- pagination
- CodeIgniter
- DatePicker
- programmers
- bootstrap
- switch-case
- EC2
- Spring
- 차이점
- SWiFT
- CKEditor4
- Xcode
- 함수
- jQuery
Archives
- Today
- Total
not bad 한 개발
프로그래머스 - 3진법 뒤집기 본문
문제 : https://programmers.co.kr/learn/courses/30/lessons/68935
github : https://github.com/delight-HK3/programmers_study/tree/main/programmers
(programmers_68935_1.java, programmers_68935_2.java 파일 입니다.)
문제분석
매개변수로 임의의 정수 값을 입력받았을 때 3진수로 변형 후 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 값을 리턴해야 하는 문제입니다.
저는 두 가지 방법으로 해결했습니다.
- 3진수 형태 문자열로 변형한 후 reverse함수를 사용하여 문자열을 뒤집은 후 3진수 문자열을 10진수 정수형으로 리턴
- while문을 사용해 입력받은 값이 0 이상이면 입력값과 3을 나눈 나머지를 빈 문자열에 저장한 후 입력값을 3을 나누어 나온 몫을 다시 저장하는 방식으로 반복하여 문자열을 만든 후 정수형으로 바꾸어 리턴
문제풀이
class Solution { // 1번 방법
public int solution(int n) {
int answer = 0; // 기본으로 제공되는 변수
String str = Integer.toString(n,3);
// 3진수 로 변형
System.out.printf("3진수 = %s%n",str);
// 3진수로 변형된 값을 출력
StringBuffer test = new StringBuffer(str);
// 변경 가능한 문자열로 만들기
String reverse = test.reverse().toString();
// test를 뒤집은 후 String 형으로 형변환 후 문자열 reverse에 저장
answer = Integer.parseInt(reverse,3);
// 문자열 reverse를 10진수 정수형으로 변환 후 answer에 저장
System.out.printf("10진수 = %d%n",answer);
// 10진수로 변형된 값을 출력
return answer; // answer 리턴
}
}
public class programmers_68935_1 {
public static void main(String[] args) {
Solution sol = new Solution();
// sol이름의 참조 변수 선언과 동시에 인스턴스를 저장
sol.solution(125);
// Solution 클래스의 멤버 메서드 solution에 매개변수 125입력
}
}
class Solution { // 2번 방법
public int solution(int n) {
int answer = 0; // 기본으로 제공되는 변수
String str = ""; // 빈 문자열 선언
while(n > 0){ // n의 값이 0이상이면 반복
str = str + (n % 3); // 문자열에 n에서 3을 나눈 나머지 값을 저장
n = n / 3; // n을 3으로 나눈 후 다시 저장
}
answer = Integer.parseInt(str, 3);
// 3진수 문자열을 10진수 정수형으로 변환하여 answer에 저장
return answer; // answer 리턴
}
}
public class programmers_68935_2 {
public static void main(String[] args) {
Solution sol = new Solution();
// sol이름의 참조 변수 선언과 동시에 인스턴스를 저장
sol.solution(125);
// Solution 클래스의 멤버 메서드 solution에 매개변수 125입력
}
}
'프로그래머스' 카테고리의 다른 글
프로그래머스 - 신고 결과 확인 (0) | 2022.05.12 |
---|---|
프로그래머스 - 나머지가 1이 되는 수 찾기 (0) | 2022.05.09 |
Comments