You are given a large integer represented as an integer array digits, where each digits[i] is the ith digit of the integer. The digits are ordered from most significant to least significant in left-to-right order. The large integer does not contain any leading 0's.
Increment the large integer by one and return the resulting array of digits.
하나의 큰 정수가 배열에 자리 숫자가 쪼개진 상태로 주어졌을 때, (즉 배열의 각 요소들은 정수의 ith 자리를 뜻하는 것 이라고 보면 된다), 그 정수보다 딱 1만큼 더 큰 정수를 같은 종류의 배열로 반환 하는 함수를 구현해주세요.
//다양한 메서드를 사용한 풀이법
var plusOne = function(digits) {
const plus = (BigInt(digits.join(""))+1n).toString();
const answer = []
for (let i = 0 ; i < plus.length ; i++){
answer.push(Number(plus[i]))
}
return answer
};
///보다 직관적인 풀이법
var plusOne = function(digits) {
for(var i = digits.length - 1; i >= 0; i--){
digits[i]++;
if(digits[i] > 9){
digits[i] = 0;
}else{
return digits;
}
}
digits.unshift(1);
return digits;
};
NULL
You are given a 0-indexed integer array nums and a target element target.
A target index is an index i such that nums[i] == target.
Return a list of the target indices of nums after sorting nums in non-decreasing order. If there are no target indices, return an empty list. The returned list must be sorted in increasing order.
정수의 배열과 타겟 숫자가 주어졌을 때, 만약 오름차순으로 정렬 된 배열 내 그 목표 타겟 숫자가 있으면 그 타겟 숫자의 인덱스를 배열에 담아 반환하는 함수를 구현해주세요.
function targetIndices(nums: number[], target: number): number[] {
const targetLocation : number[] = [];
nums.sort((a,b) => a - b).forEach((el,i) => {
if(el === target){
targetLocation.push(i)
}
})
return targetLocation
};
NULL
You are given a 0-indexed circular string array words and a string target. A circular array means that the array's end connects to the array's beginning.
Formally, the next element of words[i] is words[(i + 1) % n] and the previous element of words[i] is words[(i - 1 + n) % n], where n is the length of words.
Starting from startIndex, you can move to either the next word or the previous word with 1 step at a time.
Return the shortest distance needed to reach the string target. If the string target does not exist in words, return -1.
순환하는 배열 (배열의 끝에서 처음으로 연결되는 배열)과 목표 단어 그리고 시작 지점이 주어졌을 때, 시작 지점에서 목표 단어까지의 최소 거리를 구하는 함수를 구현해주세요.
function closetTarget(words: string[], target: string, startIndex: number): number {
let left = startIndex
let right = startIndex
let step = 0
let n = words.length
while(step <= n){
if(words[left]===target||words[right]===target){
return step
} else {
right = (right + 1) % n
left = (left - 1 + n) % n
}
step ++
}
return -1
};
돈다는 것이 약간 어려웠지만 문제 자체에 힌트가 있어 그걸 이용해서 풀었다.