본문 바로가기

코딩테스트

(36)
[프로그래머스] JadenCase 문자열 만들기 문제 설명 : JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 단, 첫 문자가 알파벳이 아닐 때에는 이어지는 알파벳은 소문자로 쓰면 됩니다. (첫 번째 입출력 예 참고) 문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요. 나의 풀이 : function solution(s) { var answer = ''; const arr = s.split(' ') arr.forEach((str,j) => { let tmpStr = [...str] tmpStr.forEach((x,i) => { if(i == 0 && isNaN(Number(x))) answer += x.toUpperCase() else answ..
[프로그래머스] 약수의 합 - JS 정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요. 첫번째 풀이 : function solution(n) { var answer = 0; const arr = Array.from({length:n}, (v,i) => i + 1) const divisor = [] arr.forEach(v => { if(n%v == 0){ divisor.push(v) } }) answer = divisor.reduce((a,b) => a + b) return answer } 이렇게 문제를 풀었을 경우, 16번 케이스에서 런타임에러가 난다. 두번째 풀이 : function solution(n) { var answer = 0; const arr = Array.from({length:..
[프로그래머스] 이상한 문자 만들기 - JS 문제설명 : 문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요. 내가 작성한 코드 : function solution(s) { var answer = ''; let tmp = s.split(' ') let changedArr = [] for(const x of tmp){ let str = "" const arr = [...x] arr.forEach((v,i) => { if(i%2 == 0) str += v.toUpperCase() else str += v.toLowerCase() }) changedArr.push(str) }..
[LeetCode] Two Sum Given an array of integers nums and an integer target, return indices of the two numbers such that they add up to target. You may assume that each input would have exactly one solution, and you may not use the same element twice. You can return the answer in any order. 나의 풀이 : var twoSum = function(nums, target) { let answer = [] for(let i = 0; i < nums.length; i ++){ for(let j = i+1; j < nums.l..
[자바스크립트] 뒤집은 소수 | 숫자 뒤집는 방법 | 소수 구하는 방법 문제 설명 : N개의 자연수가 입력되면 각 자연수를 뒤집은 후 그 뒤집은 수가 소수이면 그 소수를 출력하 는 프로그램을 작성하세요. 예를 들어 32를 뒤집으면 23이고, 23은 소수이다. 그러면 23을 출 력한다. 단 910를 뒤집으면 19로 숫자화 해야 한다. 첫 자리부터의 연속된 0은 무시한다. 나의 문제 접근 : 1) 각각의 수를 뒤집은 배열을 만든다. 2) 각각의 수가 소수인지 확인한 후 소수이면 출력한다. 나의 코드 : function isPrime(num) { // 소수는 1과 자기 자신만으로만 나누어 떨어지는 수 임으로 // num > i for(let i = 2; num > i; i++) { if(num % i === 0) { //이 부분에서 num이 다른 수로 나눠떨어진다면 소수가 아님 ..
[백준] 세탁소 사장 동혁 문제 : 미국으로 유학간 동혁이는 세탁소를 운영하고 있다. 동혁이는 최근에 아르바이트로 고등학생 리암을 채용했다. 동혁이는 리암에게 실망했다. 리암은 거스름돈을 주는 것을 자꾸 실수한다. 심지어 $0.5달러를 줘야하는 경우에 거스름돈으로 $5달러를 주는것이다! 어쩔수 없이 뛰어난 코딩 실력을 발휘해 리암을 도와주는 프로그램을 작성하려고 하지만, 디아블로를 하느라 코딩할 시간이 없어서 이 문제를 읽고 있는 여러분이 대신 해주어야 한다. 거스름돈의 액수가 주어지면 리암이 줘야할 쿼터(Quarter, $0.25)의 개수, 다임(Dime, $0.10)의 개수, 니켈(Nickel, $0.05)의 개수, 페니(Penny, $0.01)의 개수를 구하는 프로그램을 작성하시오. 거스름돈은 항상 $5.00 이하이고, 손님..
[백준] 전자레인지 - 파이썬 문제 : 3개의 시간조절용 버튼 A B C가 달린 전자레인지가 있다. 각 버튼마다 일정한 시간이 지정되어 있어 해당 버튼을 한번 누를 때마다 그 시간이 동작시간에 더해진다. 버튼 A, B, C에 지정된 시간은 각각 5분, 1분, 10초이다. 냉동음식마다 전자레인지로 요리해야할 시간 T가 초단위로 표시되어 있다. 우리는 A, B, C 3개의 버튼을 적절히 눌러서 그 시간의 합이 정확히 T초가 되도록 해야 한다. 단 버튼 A, B, C를 누른 횟수의 합은 항상 최소가 되어야 한다. 이것을 최소버튼 조작이라고 한다. 만일 요리시간이 100초라고 하면(T=100) B를 1번, C는 4번 누르면 된다. 이와 다르게 C를 10번 눌러도 100초가 되지만 이 경우 10번은 최소 횟수가 아니기 때문이 답이 될 수 없다..
[백준] 거스름돈 - 파이썬 문제 : 타로는 자주 JOI잡화점에서 물건을 산다. JOI잡화점에는 잔돈으로 500엔, 100엔, 50엔, 10엔, 5엔, 1엔이 충분히 있고, 언제나 거스름돈 개수가 가장 적게 잔돈을 준다. 타로가 JOI잡화점에서 물건을 사고 카운터에서 1000엔 지폐를 한장 냈을 때, 받을 잔돈에 포함된 잔돈의 개수를 구하는 프로그램을 작성하시오. 입력 : 입력은 한줄로 이루어져있고, 타로가 지불할 돈(1 이상 1000미만의 정수) 1개가 쓰여져있다. price = int(input()) change = 1000 - price count = 0 coin_list = [500,100,50,10,5,1] def get_count(coin): global change global count count += change//..