티스토리 뷰
728x90
반응형
문제 요약
- 알고리즘 분류: 수학
- 난이도: Medium
- 문제내용:
- 숫자 n이 주어지면 2 ~ n-2 진법까지 변환한다.
- 집법으로 변환 한 것에서 뒤집은 숫자와 다른 것 하나라도 있으면 false로 반환 한다.
- 사이트 주소: https://leetcode.com/problems/strictly-palindromic-number/description/
문제풀이
이번 문제는 Palindromic Number 문제이다. 근데 여기서 진법으로 변환해서 뒤집은 숫자와 다른지 파악하면 된다.
여기서 구현 해야 할것은 n진법 변환 작업이다. 자바는 n진법 변환 하는 함수 제공하는데 파이썬은 직접 구현 해야한다.
파이썬 진법 구현은 아래와 같이 하면된다.
# 진법 변환
def baseN(num: int, base) -> int:
parse = ''
while num:
num, mod = divmod(num, base)
parse += str(mod)
# 뒤집어야 집법 변환 작업이 끝난다.
return parse[::-1]
진법을 문자열로 만든후 뒤집어서 같은지만 확인 하면 구현은 끝이다.
Code
Python
class Solution:
def isStrictlyPalindromic(self, n: int) -> bool:
# 진법 변환
def baseN(num: int, base) -> int:
parse = ''
while num:
num, mod = divmod(num, base)
parse += str(mod)
# 뒤집어야 집법 변환 작업이 끝난다.
return parse[::-1]
for i in range(2, n - 1):
parseInt = baseN(n, i)
if parseInt != parseInt[::-1]:
return False
return True
Java
- Integer.toString(n, i): 숫자 n을 i진법으로 변환후 문자열로 반환 한다.
- sb.reverse().toString(): 일반 문자열에서 문자열 뒤집기 제공 안한다. 그래서 StringBuffer class사용해서 문자열 뒤집으면 된다.
class Solution {
public boolean isStrictlyPalindromic(int n) {
StringBuffer sb;
for (int i = 2; i <= n - 2; i++) {
sb = new StringBuffer(Integer.toString(n, i));
if(!sb.toString().equals(sb.reverse().toString())){
return false;
}
}
return true;
}
}
728x90
반응형
'알고리즘 > Leetcode' 카테고리의 다른 글
[Leetcode]3111. Minimum Rectangles to Cover Points (0) | 2024.06.26 |
---|---|
[Leetcode]1282. Group the People Given the Group Size They Belong To (0) | 2024.06.07 |
[Leetcode]2433. Find The Original Array of Prefix Xor (0) | 2024.05.16 |
[Leetcode] 221. Maximal Square (0) | 2024.05.13 |
[Leetcode] 1302. Deepest Leaves Sum (1) | 2024.04.19 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 백준
- 조합
- 동적 계획법
- BFS
- 알고리즘
- DFS
- DP
- 동적계획법
- Programmerse
- 수학
- 그래프
- 파이썬
- 누적합
- BaekJoon
- 배열
- 백트레킹
- java
- Greedy
- Python
- LeetCode
- JSCODE
- 넓이 우선 탐색
- 재귀호출
- 문자열
- 자바
- level2
- 그리디
- 이론
- 구현
- spring-boot
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함