Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions insoo/2108_week1/210802/[프로그래머스]JadenCase_문자열.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
// 문제이해
// 문자열을 입력받아, 띄어쓰기를 기준으로 각 첫 문자를 대문자, 나머지는 소문자로 바꾸어 리턴

// 문제풀이
// 1. 문자열을 split
// 2. 일단 전부 LowerCase로 바꾸고, 1번째문자만 대문자로 변경
// 3. join

function solution(s) {
let arrS = s.split(" ");

for (let i = 0; i < arrS.length; i++) {
if (arrS[i] === "") continue;
arrS[i] = arrS[i][0].toUpperCase() + arrS[i].toLowerCase().slice(1);
}
return arrS.join(" ");
}

console.log(solution("3people unFollowed me"));
// "3people Unfollowed Me"
console.log(solution("hEllo world"));
// "Hello World"
35 changes: 35 additions & 0 deletions insoo/2108_week1/210802/[프로그래머스]멀쩡한사각형.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
// 문제이해
// 가로(W), 세로(H) 길이가 주어질 때, 대각선으로 선을 그어 깨지는 사각형은 사용하지 못한다.
// 사용가능한 정사각형의 개수는?

// 문제 풀이
// 1. 전체개수(가로 * 세로)에서 대각선에 걸친 사각형개수를 빼준다.
// 2. 잘리는 개수는 (가로/세로)의 비율의 올림 * 더 작은 길이

// 2차풀이 (ref참고)
// 대각선을 지나는 사각형은 가로 + 세로 - 두수의 최대공약수 라는 공식이 있음

function solution(w, h) {
// a,b 에 대하여 r = a % b 일 때 a와 b의 최대공약수는 b와 r (나눈수와 그 나머지)의 최대공약수와 같다.
// b, r의 최대공약수는 다시 r` = b % r 로 나누어 생각하므로 (나눈수와 그 나머지) r, r` 의 최대공약수
// 반복하여 나머지가 0이 되었을 때의 나누는 수가 a, b의 최대공약수이다.
function gcdEuclidean(a, b) {
if (b === 0) {
// 나머지가 0이면
return a;
}
return gcdEuclidean(b, a % b);
}
let entire = w * h;
let cut = w + h - gcdEuclidean(w, h);
return entire - cut;
}
// 1차 풀이
// 케이스별 그려보며, 예외케이스 발견했지만 결국 실패

// function solution(w, h) {
// let entire = w * h
// let cut = Math.ceil(Math.max(w/h, h/w)) * Math.min(w,h)
// if(w > 1 && h > 1 && w % 2 === 1 && h % 2 === 1 && w !== h) cut++
// return entire - cut
// }