Loading...

[LeetCode] 316. Remove Duplicate letters (javascript)

먼저 각 문자의 총 등장 개수를 저장한다 stack에 b, c, a 가 들어오고 또 b, c가 들어올 때 (b, c, a ,b, c 예제) a가 들어오는 순간 stack에 이미 들어있던 b, c는 뒤에 또 등장하므로 (cnt>0) 이므로 나중에 다시 stack에 넣어주면 되므로 stack에서 없애고 a를 집어넣는다. 뒤에 다시 등장하는 b, c는 cnt==0이므로 또 뒤에 등장하는 b,c가 없어 더 이상 스택에서 제거할 수 없고 지금 사용한다고 보면 된다. /** * @param {string} s * @return {string} */ var removeDuplicateLetters = function(s) { const cnt={} // 각 문자가 등장하는 개수 저장하는 객체 for(let i=0;i..

[LeetCode] 121. Best time to buy and sell stock (javascript)

min은 반복문을 돌면서 가장 작은 값이 들어가게 한다. sum은 현재 위치에서 가장 작은 값 min과 현재 가격 price 차 중 가장 큰 값으로 계속 업데이트 해준다. /** * @param {number[]} prices * @return {number} */ var maxProfit = function(prices) { let min=prices[0]; let sum=0; prices.forEach(price=>{ if(priceprice-min?sum:price-min; }) return sum; };

[LeetCode] 5. Longest Palindromic Substring (javascript)

/** * @param {string} s * @return {string} */ var longestPalindrome = function(s) { function expand(l,r){ //r==s.length까지 검사하는 이유는 substring에서 맨 끝 인덱스가 짤리기 때문이다 while(l>=0 && r

[LeetCode] 49. Group Anagrams (javascript)

각 문자열을 배열로 만들어 정렬한 다음 다시 문자열로 만듬 정렬된 문자열에 해당하는 기존 문자열들을 집어넣음 객체를 돌면서 answer배열에 각 배열들을 넣는다. 1. 객체이용 /** * @param {string[]} strs * @return {string[][]} */ var groupAnagrams = function(strs) { ans=[] dic={} for(let i=0;i{ ans.push(arr) }) return ans }; 2. 객체 없이 배열로만 푸는 방법 /** * @param {string[]} strs * @return {string[][]} */ var groupAnagrams = function(strs) { dic=[] strs.forEach(str=>{ w=str.sp..

[LeetCode] 125. valid palindrome (javascript)

leetcode.com/problems/valid-palindrome/submissions/ 1. 정규표현식 이용하지 않음. 대문자로 변환한 뒤 if문으로 문자와 숫자 검사 s=s.toUpperCase(); arr=[] for(let i=0;i='A' && s[i]='0'&& s[i]

[swexpert] 2047. 신문 헤드라인 (D1, python, java)

1. 파이썬 풀이 s=input() converted=[x.upper() for x in s] print(''.join(converted)) 2. 자바 풀이 import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner sc=new Scanner(System.in); String s=sc.next(); System.out.println(s.toUpperCase()); sc.close(); } }

[swexpert] 2046. 스탬프 찍기 (python, java, D1 )

1. 파이썬 풀이 n=int(input()) print(n*'#') 2. 자바 풀이 import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner sc=new Scanner(System.in); int n=sc.nextInt(); String s=""; for (int i = 0; i < n; i++) { s+="#"; } System.out.println(s); sc.close(); } }

[swea] 2056. 연월일 달력 (python, java , D1)

문제풀이 언어를 파이썬으로 바꾼 이후로 쉬운 문제부터 다시 연습하고 있다 swea1, 2 부터 다 풀려고 한다 달력 일자 별로 배열에 담아 푸는 방법도 있는데 그게 더 나을 것 같다 1. python 풀이 t=int(input()) for i in range(t): print('#%s' %(i+1),end=' ') date=input() year=int(date[:4]) month=int(date[4:6]) dd=int(date[6:]) if month 12: print(-1) continue if month in [1,3,5,7,8,10,12]: if dd 31: print(-1) continue if month ==2: if dd28: print(-1) continue if month in [4,6,..

[백준] 팰린드롬 만들기 (1254번, 파이썬)

www.acmicpc.net/problem/1254 1254번: 팰린드롬 만들기 동호와 규완이는 212호에서 문자열에 대해 공부하고 있다. 규완이는 팰린드롬을 엄청나게 좋아한다. 팰린드롬이란 앞에서부터 읽으나 뒤에서부터 읽으나 같게 읽히는 문자열을 말한다. 동호는 www.acmicpc.net abbcd인 경우 abbcd bbcd bcd cd d (d하나는 팰린드롬임) 이렇게 검사해나가서 펠린드롬이 아니었던 abbc를 뒤집어서 d오른쪽에 cbba이렇게 붙인다고 가정한다. 즉 부분문자열이 팰린드롬이 되기까지의 왼쪽 문자열 개수만큼 더해주면 그게 답이다 s=input() for i in range(len(s)): if s[i:]==s[i:][::-1]: print(len(s)+i) break

leetCode - move zeros (python, javascript)

0 1 0 3 12 가 있을 때 앞에 0이 있으면 뒤의 값과 바꾸는 알고리즘을 사용했다 (삽입 정렬) 만약 이전 값이 0이 아닌 수가 있으면 앞에는 이미 0이 없는 상태이므로 다음 원소로 넘어가면 된다 class Solution: def moveZeroes(self, nums: List[int]) -> None: """ Do not return anything, modify nums in-place instead. """ for i,e in enumerate(nums): for j in range(i-1,-1,-1): if nums[j]!=0: break nums[j]=nums[j+1] nums[j+1]=0 2) 비슷하지만 조금 다른 풀이 idx=0 (0의 위치라고 가정)로 둔다. 만약 0이 아닌 수가 ..