조건문

문종후·2023년 3월 29일
0

조건문

2.문제
수를 입력받아 3 그리고 5로 각각 나눈 뒤 나머지 값에 따라 알맞은 메시지를 리턴해야 합니다.
<지켜야할것>
string 타입을 리턴해야 합니다.
3으로 나누어 떨어지는 경우, 'Fizz'를 리턴해야 합니다.
5으로 나누어 떨어지는 경우, 'Buzz'를 리턴해야 합니다.
3과 5로 모두 나누어 떨어지는 경우, 'FizzBuzz'를 리턴해야 합니다.
3이나 5로 나누어 떨어지지 않는 경우, 'No FizzBuzz'를 리턴해야 합니다.

function fizzBuzz(num) {
// TODO: 여기에 코드를 작성합니다.
//3으로 나누어떨어지면 Fizz
if(num%3===0 && num%5===0){
return 'FizzBuzz'
}
else if(num%5===0){
return 'Buzz'
}
else if(num%3===0 ){
return 'Fizz'
}
else return 'No FizzBuzz'
}
간단하게 통과할수있었다. 하지만 하나실수했던부분이 num%3===0 ->Fizz부터 적게되면 둘다나누어떨어지는 case에서 Fizz가 출력이된다. 왜? 위에서부터 아래로 실행하기떄문에
따라서 큰범위를 맨위로 점점 아래로 내려가는식으로 코드를짜보자.

조건문 6번 아침에풀어보기()

7번 addOneSecond
문제
시, 분, 초를 입력받아 1초를 더한 결과값을 특정 형태의 메시지로 리턴해야 합니다.

function addOneSecond(hour, minute, second) {
// TODO: 여기에 코드를 작성합니다.
if(second+1===60){
minute=minute+1; second=0;
if(minute===60){
hour=hour+1;minute=0;
if(hour===24){
hour=0;minute=0;second=0;
}
}

  return '1초 뒤에 '+hour+'시 '+minute+'분 '+(second)+'초 '+'입니다'

}
else {return '1초 뒤에 '+hour+'시 '+minute+'분 '+(second+1)+'초 '+'입니다'}
}

ref1.(딴사람풀인데 어렵넹..)

function addOneSecond(hour, minute, second) {
let C = 0;
second = second+1;

if(second % 60 === 0){
C = 1;
minute = minute + C;
}if(minute % 60 === 0){
C = 1;
hour = hour + C
}
return 1초 뒤에 ${hour%24}시 ${minute%60}분 ${second%60}초 입니다
}

ref2.
function addOneSecond(hour, minute, second) {
if (second === 59) {
minute += 1;
second = 0;
} else {
second += 1;
}

if (minute === 60) {
hour += 1;
minute = 0;
}

if (hour === 24) {
hour = 0;
}

return '1초 뒤에 ' + hour + '시 ' + minute + '분 ' + second + '초 입니다';
}

위에서 아래로가면서 변수가 변경된다는것을 기억해야할것같다.(ref2)가 사실똑같은접근인데 훨씬깔끔하네

-->ref1 참고하다가 % 와 조건문 변수 가변여부에대해서 살짝정리해봤다.

먼저 %는 나누기가아니라 나머지를 뜻한다. ㅇㅋ?

ref1코드를 살짝 가져와보면
function addOneSecond(hour, minute, second) {
let C = 0;
second = second+1;

if(second % 60 === 0){
C = 1;
minute = minute + C;
}if(minute % 60 === 0){
C = 1;
hour = hour + C
}
return 1초 뒤에 ${hour%24}시 ${minute%60}분 ${second%60}초 입니다
}

만약 (second 59엿다고해보자 그러면 변수에의해 second 는 60이되어 쭉밑으로내려가게된다.한번 if문위에서 바꾼 변수들은 바뀐채로 쭉내려간다.)

8.findShortestOfThreeWords
문제
차례대로 문자열 3개를 입력받아, 가장 짧은 문자열을 리턴해야 합니다.

function findShortestOfThreeWords(word1, word2, word3) {
// TODO: 여기에 코드를 작성합니다.
let A= word1.length ;let B= word2.length ;let C= word3.length
if(A<=B){
if(A<=C){
return word1;
}
else if(A>C){
return word3;
}
}
else if(B<=C){
return word2
}
else return word3
}

ref function findShortestOfThreeWords(word1, word2, word3) {
let min = word1

if(min.length > word2.length){
min= word2;
}
if(min.length > word3.length){
min = word3;
}
return min
}

//입력 : word1,2,3 (string)
//출력 : string - 가장 짧은 문자열
// 길이가 같으면 처음 입력받은 문자열
// 첫 입력을 최소길이의 문자열로 가정하고, 그 다음 문자열과 비교하여 다음 문자열이 더 짧을 경우 최소길이 문자열 값을 다음 문자열로 바꾼다.

--> 아까정리해놓고 이걸모르냐...변수의값이 변한다는것을 이용한 야무진풀이 이건인정.

profile
개발자가되고싶은사람

0개의 댓글