-
프로그래머스 : 3진법 뒤집기코딩테스트 문제 풀이/프로그래머스 2023. 11. 22. 01:01
ㅋㅋ 난 정말 힘들게 풀었는데 Integer 클래스 활용을 제대로 하지 못해서 고생한 거였다 🤣 그리고 너무 어렵게 생각했던것도 한몫함..😔
프로그래머스 다른사람풀이 첫번째 두번째 합침
다른사람 코드 _class Solution { public int solution(int n) { int answer = 0; String third = Integer.toString(n, 3); StringBuffer sb = new StringBuffer(third); String reversed = sb.reverse().toString(); answer = Integer.parseInt(reversed, 3); return answer; } }
헛웃음만 나온다 진짴ㅋㅋㅋㅋ
위에 코드는 한줄로도 됨..
class Solution { public int solution(int n) { return Integer.parseInt( new StringBuffer(Integer.toString(n, 3)) .reverse().toString() , 3); } }
그리고 계산 하는 방법도 배울 수 있었다. _ 프로그래머스 다른사람 코드 첫번째
String a = ""; while(n > 0){ a = (n % 3) + a; n /= 3; }
이렇게 하면 쉽게 3진수로 계산이 되었다. 뒤집힌 3진수를 만들려면
String a = ""; while(n > 0){ a += n % 3; n /= 3; }
이렇게 a 문장만 바꿔주면 된다.
메모 📝
StringBuffer 클래스 활용 _ 문자열 뒤집기
new StringBuffer(" str ").reverse().toString();
Integer 클래스 활용 _ 진수 변환
n = 10진수 숫자 // 3진수로 변환 String str = Integer.toString(n, 3); // 3진수 문자열을 10진수로 변환 int num = Integer.parseInt(str, 3);
나눗셈으로 진수 변환하기
String a = ""; while(n > 0){ a = (n % 3) + a; n /= 3; }
내 코드 😔
class Solution { public int solution(int n) { int answer = 0; int base = 3; String samJinSu = makeReverseSamJinSu(n, 1, base, ""); answer = Integer.parseInt(samJinSu.substring(samJinSu.length()-1)); for (int i = samJinSu.length() - 2; i >= 0; i--) { answer += Integer.parseInt(samJinSu.charAt(i) + "") * base; base *= 3; } return answer; } String makeReverseSamJinSu(int num, int x, int base, String result) { if (num / x < base) { result = num / x + result; if (num % x != 0) { num = num % x; x /= base; } else { return result; } } else { if (!"".equals(result)) result = 0 + result; x *= base; } return makeReverseSamJinSu(num, x, base, result); } }
코드 작성 다 하고 정답 떠서 엄청 뿌듯했는데~~ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 두시간 걸림 🥲 심지어 메모도 했는뎅..........
오늘의 배운점 : 제공되는 클래스를 잘 활용하자! 고민을 조금 더 해보고 문제를 풀자
처음 풀어본 날 : 23.03.26 ~ 28
'코딩테스트 문제 풀이 > 프로그래머스' 카테고리의 다른 글
프로그래머스 : 둘만의 암호 (0) 2023.11.22 프로그래머스 : 가운데 글자 가져오기 (0) 2023.11.22 프로그래머스 : 이상한 문자 만들기 (0) 2023.11.22 프로그래머스 : 폰켓몬 (0) 2023.11.21 프로그래머스 : 소수 찾기 (0) 2023.11.21