반응형
오늘의 문제. 링크드리스트에 들어 있는 이진수를 십진수로 바꿔라.
일단 자바로 한 번 풀고
public class cote0405_1290_ConvertBinaryNumberInALinkedListToInteger {
public class ListNode {
int val;
ListNode next;
ListNode() {}
ListNode(int val) { this.val = val; }
ListNode(int val, ListNode next) { this.val = val; this.next = next; }
}
public int getDecimalValue(ListNode head) {
// make a String with the linked list
String binaryStr = head.val+"";
while(head.next != null){
head = head.next;
binaryStr = binaryStr + head.val;
}
//System.out.println(binaryStr);
int len = binaryStr.length();
char[] strChar = binaryStr.toCharArray();
int answer=0;
for(int i=0; i<len; i++){
//if 1, add it as pow
if(strChar[i] == '1'){
answer += Math.pow(2, len-i);
}
}
return answer;
}
}
파이썬으로 한 번 다시 풀었다. 파이썬은 다른 사람의 훨씬 더 짧은 코드를 분석한 뒤 그걸 파이썬으로 옮겼다. 자바에선 String변수 선언할 때 백날천날 str을 썼는데 파이썬에서는 함수로 제공되는 str()이 있어서 변수명으로 사용이 불가능한가보다.
# Definition for singly-linked list.
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
class Solution:
def getDecimalValue(self, head: ListNode) -> int:
bistr = str(head.val)
while head.next:
head = head.next
bistr += str(head.val)
return int(bistr, 2)
728x90
반응형
'TIL > Coding Test' 카테고리의 다른 글
[LeetCode] Reverse Linked List (2) | 2021.04.09 |
---|---|
[LeetCode] assign cookies (Python) (0) | 2021.04.02 |
[LeetCode] Two Sum (Python) (0) | 2021.03.31 |
[LeetCode] Lemonade Change (Python) (0) | 2021.03.29 |
[백준] 베스트셀러 Best Seller (0) | 2021.03.29 |