목록전체 글 (310)
가오리의 코딩일기
nullish 병합 연산자 '??' nullish 병합 연산자 '??' ko.javascript.info 🧩 nullish 병합 연산자 → ??를 사용하면 짧은 문법으로 여러 피연산자 중 그 값이 확정되어 있는 변수를 찾을 수 있다 // a ?? b의 평가결과와 같은 코드 x = (a !== null && a !== undefined) ? a : b; → 세 변수 중 실제 값이 있는 변수의 값을 출력하는데 세 변수 모두 값이 없다면 ‘익명의 사용자'가 출력된다 let firstName = null; let lastName = null; let nickName = "바이올렛"; // null이나 undefined가 아닌 첫 번째 피연산자 alert(firstName ?? lastName ?? nickNam..
논리 연산자 논리 연산자 ko.javascript.info 🪝 &&의 우선순위가 ||보다 높다 a && b || c && d (a && b) || (c && d) → 위의 코드는 동일하게 동작한다 🪝 if를 ||나 &&로 대체하지 말자 let x = 1; (x > 0) && alert('0보다 크다'); if (x > 0 ) alert('0보다 크다'); → &&를 사용한 코드가 더 짧긴 하지만 if문을 사용한 예시가 코드에서 무엇을 구현하고자 하는지 더 명백히 드러나고 가독성도 좋다 → if 조건문이 필요하면 if를 사용하고 AND 연산자는 연산자 목적에 맞게 사용하자 🧩 문제 Q1. 다음 OR 연산의 결과는 무엇일까요? alert( null || 2 || undefined ); → alert 창에 2..
💡 암묵적 타입 변환(implicit coercion), 타입 강제 변환(type coercion) → 자바스크립트 엔진은 표현식을 평가할 때 코드 문맥에 부합하도록 자동 변환 수행 → 재할당이 아닌 새로운 타입의 값을 만들어 단 한 번 사용하고 버린다 → 표현식을 에러 없이 평가하기 위해서 🧩 문자열 타입으로 변환 → +연산자는 피연산자 중 문자열이 존재하면 문자열 연결 연산자로 동작한다 → 템플릿 리터럴의 표현식 삽입: 표현식의 평가 결과를 문자열 타입으로 암묵적 타입 변환한다 `1 + 1 = ${1+1}` // "1 + 1 = 2" → 숫자 타입 0 + ""; // "0" -0 + ""; // "0" 1 + ""; // "1" -1 + ""; // "-1" NaN + ""; // "NaN" Infi..
e,s,m = map(int,input().split()) year = 1 while True: if (year - e) %15 == 0 and (year-s)%28== 0 and (year-m)%19==0: break year+=1 print(year)
→ 곱셈을 하는 경우: 0과 음수, 양수와 양수, 음수와 음수 → 덧셈을 하는 경우: 0과 양수, 양수와 음수, 1과 음수, 1과 양수 number = int(input()) positive = [] negative = [] result = 0 for _ in range(number): n = int(input()) if n == 1: result += 1 elif n > 1: positive.append(n) else: negative.append(n) positive.sort(reverse=True) negative.sort() if len(positive) % 2 == 0: for i in range(0, len(positive), 2): result += positive[i] * positive[..
def three_search(start, end): while abs(end - start) > 1e-9: mid1 = (2 * start + end) / 3 mid2 = (start + 2 * end) / 3 if distance(mid1) > distance(mid2): start = mid1 else: end = mid2 return distance(start) def distance(i): minX = ax * i + bx * (1 - i) minY = ay * i + by * (1 - i) kangX = cx * i + dx * (1 - i) kangY = cy * i + dy * (1 - i) return ((kangX - minX) ** 2 + (kangY - minY) ** 2) ** 0..
n, m, k = map(int, input().split()) result = 0 while True: n -= 2 m -= 1 if n < 0 or m < 0 or (n+m) < k: break result += 1 print(result)
people = int(input()) times = list(map(int, input().split())) result = 0 times.sort() for i in range(people): for j in range(i+1): result += times[j] print(result)
meeting = int(input()) times = [[0]*2 for _ in range(meeting)] for i in range(meeting): start, end = map(int, input().split()) times[i][0] = start times[i][1] = end times.sort(key=lambda x: (x[1], x[0])) result = 1 endTime = times[0][1] for i in range(1, meeting): if times[i][0] >= endTime: result += 1 endTime = times[i][1] print(result)