분류 전체보기 454

문제 39. 최대공약수와 최소공배수(난이도 5)(유클리드 호제법)

최대공약수와 최대공배수를 구하는 방법으로옛날에 유클리드 호제법이 있다 정도로이름만 알고 있었다. 위의 문제를 보고 인터넷에 검색해 유클리드 호제법의 동작 원리를 본 결과 mod = max number % min number를 구하고,max number = min number로,min number = mod 바꿔준 후, 위의 과정을 min number이 == 0이 될 때 까지반복 수행해줄 경우 max number에 최소공약수가 저장된다. 최대공배수를 구할 때에는 초기값 max number, min number를 곱하고최소공약수로 나눠주면 됐다. -> max number * min number / 최대공약수 시간 복잡도는 O(log(min(a, b)))입니다 제출한 코드 :  function solution..

카테고리 없음 2024.07.23

문제 38. 직사각형 별찍기(repeat 함수 복습)

어떻게 문제를 풀지... 하다가 repeat()함수가생각나 console.log("*".repeat(a))를 사용해 봤다."*"이 a개 찍히는 것을 확인하고, 줄바꿈을 방법을 생각해본 결과, ("*".repeat(a) + '\n').repeat(b)으로 원하는 별 개수 출력 및 줄 바꿈을수행해주었다. repeat 함수를 몰랐다면... 절대 풀지 못 했을 것 같다... 제출한 코드 : process.stdin.setEncoding('utf8'); process.stdin.on('data', data => { const n = data.split(" "); const a = Number(n[0]), b = Number(n[1]); console.log((("*".repeat(a)+'\..

문제 37. 행렬의 덧셈(map 함수)

반복문을 사용한 코드 제출한 코드 : function solution(arr1, arr2) { var answer = arr1; for(let i = 0; i { for(let j = 0; j { answer[i][j] += arr2[i][j] } } return answer; } 반복문을 사용하지 않고 풀 수 있는 방법이 존재할 것이라 생각하고다른 사람의 풀이 법을 찾아 본 결과,map()함수가 존재했다. map()함수는 배열을 순회하며 각 요소를 콜백 함수로 적용해새로운 배열로 반환하기 위한 함수였다. map()함수의 사용법은map((element, index, array)=> ~~~)로 eleme..

뮨제 36. (중요)문자열 다루기 기본(지수 표기법, 비교 연산자)

처음 문제를 보고 단순히 Number.isInteger(Number(s))로 비교를 수행했다... 하지만, 여기에는 2가지 오류가 존재 했는데, 첫번째로, "문자열 s의 길이가 4 혹은 6이고"라는 부분을 만족시켜주지 않아 계속 문제를 틀렸었다.만약) "12345"인 문자열이 들어올 경우 Number함수에 의해 정수가 되고,IsInteger에서 true가 되기 때문이다. 두번째로, Number.isInteger(Number(s))를 사용할 경우Number("3e10") 경우 지수 표기법에 의해Number("3e10") = Number("3 * 10 ^ 10")으로 표기 돼isInteger가 true가 돼 버린다... 위의 경우를 해결하기 위해서는 비교 연산자를 활용해야 하는데,JavaScript에서 ..

문제 35. 부족한 금액 계산하기(가우스 공식)

처음 제출한 코드는 function solution(price, money, count) { let answer = 0; for(let i = 1; i count; i++) answer += (price * i); return money - answer >= 0 ? 0 : answer - money;}위와 같이 반복문으로 금액을 계산해 보유한 금액과 비교하는 방식이었다. '문제를 제출한 후 더 간단한 방식이 존재하지 않을까'?다른 사람 풀이를 본 결과 가우스 공식을 이용해 반복문 없이 계산이 가능했다. (첫 값 + 끝 값) * 숫자 개수 / 2 규칙성이 있는 숫자들의 합을 빠르게구할 수 있었다. 제출한 코드 : function solution(price, money, count)..

문제 34. (중요)문자열 내림차순으로 배치하기(문자열 sort, join)

문제를 보고 split('').sort((a, b)=> b - a).join('')으로 쉽게 구할 수 있을거라 생각했다.그런데 sort()부분이 내 생각처럼 동작하지 않았다. 찾아보니, 숫자 문자열인 경우 b - a로 사칙연산에 의해 내림차순 정렬이 가능 했지만,문자 문자열인 경우 b - a로 사칙연산이 수행될 수 없어 정렬이 불가능 했다. 문자 문자열의 내림차순 정렬 방법은 다음과 같은데, sort((a,b)=> a 로 가능했다. 만약, sort((a,b)=> a sort()로 오름차순 정렬 후, reverse()를 사용해 내림차순 정렬이 가능했다. 마지막으로 split('')에 의해 문자열이 배열의 문자로 나눠졌기 때문에다시 문자열로 만들어주는 함수를 찾아본 결과 join()함수가 존재했고, s..

2024년 7월 22일 TIL

오늘은 지난 금요일(19)날 SQL문을 풀지 않아서 SQL 문제를 풀어보았다. https://kagan-draca.tistory.com/80 문제 33. 상품 별 오프라인 매출 구하기(난이도 7)기존에 배운 INNER JOIN을 사용해야한다.따라서, FROM PRODUCT AS A INNER JOIN OFFLINE_SALE AS BON A.PRODUCT_ID = B.PRODUCT_ID 로 해주었고,  GROUP BY A.PRODUCT_CODE로 그룹으로 묶어준 후 ORDER BY SALES DESC, A.PRODUCT_CODE ASCkagan-draca.tistory.comhttps://kagan-draca.tistory.com/81 문제 34. 있었는데요 없었습니다 (난이도 5)문제는 비교적 간단했다...

TIL 2024.07.22

문제 40. 루시와 엘라 찾기(REGEXP, IN 복습)

처음 문제를 보고 'REGEXP를 사용하면 쉽게 풀리겠네~'라고 생각했다!!하지만, REGEXP 사용에 익숙해져서 까먹은 사실이 하나 있었다!!REGEXP은 문자열에 포함된 문자열을 찾기 때문에 Lucy를 검색할 경우LucyCCC라는 이름이 있으면 같이 출력 된다는 것이다. 그리고 IN()함수를 잘 사용하지 않아 까먹고 있었는데IN()함수는 찾고자 하는 문자열이 문자열에 정확하면조건에 부합한다고 판단하는 함수라는 것이다. 제출한 코드 : SELECT ANIMAL_ID, NAME, SEX_UPON_INTAKE FROM ANIMAL_INS WHERE NAME IN('Lucy','Ella','Pickle','Rogan','Sabrina','Mitty') ORDER BY ANIMAL_ID ASC

SQL 문제 2024.07.22

문제 39. 성분으로 구분한 아이스크림

문제만 길지 사실 배운 내용을 바탕으로 잘 조합하면 쉬운 문제이다.먼저 JOIN ON으로 두 테이블을 Join 시켜주고,GROUP BY문으로 그룹을 만든 후,그 룹의 TOTAL_ORDER를 SUM으로 더하고 이름을 변경해주면 된다. 제출한 코드 : SELECT B.INGREDIENT_TYPE, SUM(A.TOTAL_ORDER) AS TOTAL_ORDER FROM FIRST_HALF AS A INNER JOIN ICECREAM_INFO AS B ON A.FLAVOR = B.FLAVOR GROUP BY B.INGREDIENT_TYPE ORDER BY TOTAL_ORDER ASC

SQL 문제 2024.07.22