문제 A, B 두 사람이 가위바위보를 합니다. N번의 게임을 했을 때 이긴 사람의 이름을 출력하는 프로그램을 작성하시오. A가 이기면 A 출력, B가 이기면 B 출력, 비기면 D를 출력합니다. - 가위 : 1 - 바위 : 2 - 보 : 3 입력 설명 - 첫 번째 줄: N - 두 번째 줄: A가 낸 가위, 바위, 보 정보 - 세 번째 줄: B가 낸 가위, 바위, 보 정보 입력 예제 5 21231 32132 출력 예제 BBADB 풀이 function solution(a, b) { let answer = ""; for (let i = 0; i < a.length; i++) { // 비겼을 때 if (a[i] === b[i]) answer += "D" // A가 이겼을 때 else if (a[i] === 1 &..
문제 N명의 학생을 일렬로 세웠을 때, 선생님이 볼 수 있는 학생의 수를 구하시오. 앞사람보다 크면 보이고, 작거나 같으면 보이지 않습니다. 입력 예제 [133, 145, 150, 127, 156, 134] 출력 예제 4 풀이 function solution(h) { let answer = 1; // 첫번째 사람은 무조건 카운팅 let max = h[0]; // 첫번째 사람 키를 최댓값으로 초기화하고 시작 for (let i = 1; i max) { answer++; max = h[i]; } } return answer; }
문제 입력된 배열 요소가 해당 요소의 바로 앞 요소보다 큰 수일 경우 출력하시오. 첫번째 요소는 무조건 출력합니다. 입력 예제 [3, 1, 23, 17, 6, 10] 출력 예제 [3, 23, 10] 풀이 function solution(nums) { let answer = []; answer.push(nums[0]); for(let i = 1; i nums[i - 1]) answer.push(nums[i]) } return answer; }
문제 문자열(s)에서 특정 문자(t)의 개수를 구하는 프로그램을 작성하시오. 입력 예제 caaatttts a 출력 예제 3 풀이 - 문자열.indexOf(문자열, 시작인덱스) function solution(s, t) { let answer = 0; let idx = s.indexOf(t); while(idx !== -1) { answer++; idx = s.indexOf(t, idx + 1); } return answer; }
문제 입력된 문자열에서 중복 문자를 제거하고 출력하시오. 입력 예제 caaatttts 출력 예제 cats 풀이 문자열의 i번째 문자의 indexOf 값이 해당 문자의 인덱스와 같다면, 중복된 문자 중 첫 번째 문자이므로 answer에 포함한다. function solution(s) { let answer = ""; for (let i = 0; i < s.length; i++) { if (s.indexOf(s[i]) === i) answer += s[i]; } return answer; }
문제 입력된 문자열의 가운데 문자를 출력하시오. 입력 예제 1 close 출력 예제 1 o 입력 예제 2 soup 출력 예제 2 ou 풀이 - 문자열.substring(start인덱스, end인덱스전) function solution(s) { let answer; let mid = Math.floor(s.length/2); // 홀수 if(s.length % 2 === 1) answer = s.substring(mid, mid + 1) // 짝수 else answer = s.substring(mid - 1, mid + 1) return answer; } - 문자열.substr(start인덱스, length) function solution(s) { let answer; let mid = Math.floo..
문제 N개의 문자열 중 가장 긴 문자열을 출력하시오. 입력 설명 문자열은 서로 길이가 다르다. 입력 예제 ["soup", "cat", "shining", "source", "go", "mango", "clothing"] 출력 예제 clothing 풀이 Number.MIN_SAFE_INTEGER(안전한 최소 정수)를 사용하여 max를 초기화한다. function solution(s) { let answer, max = Number.MIN_SAFE_INTEGER; for (let x of s) { if (x.length > max) answer = x; } return answer; }
문제 문자열이 입력되면 대문자를 소문자로 소문자를 대문자로 변환하여 출력하시오. 입력 예제 SixSoupSalt 출력 예제 sIXsOUPsALT 풀이 방법 1. toUpperCase()와 비교 function solution(s) { let answer = ""; for (let x of s) { if (x === x.toUpperCase()) answer += x.toLowerCase(); else answer += x.toUpperCase(); } return answer; } 방법 2. ASCII 코드 사용 - 대문자 : 65~90 - 소문자 : 97~122 function solution(s) { let answer = ""; for (let x of s) { let asc = x.charCode..
문제 입력된 문자열에서 대문자를 찾아 개수를 출력하시오. 입력 예제 SixSoupSalt 출력 예제 3 풀이 방법 1. toUpperCase() 사용 function solution(s) { let answer = 0; for (let x of s) { if (x === x.toUpperCase()) answer++; } return answer; } 방법 2. ASCII 코드 사용 - 대문자 : 65~90 - 소문자 : 97~122 function solution(s) { let answer = 0; for (let x of s) { let asc = x.charCodeAt(); if (asc >= 65 && asc