분류 전체보기

    [프로그래머스 Level 1] PCCP 기출문제 1번 : 붕대 감기

    어떤 게임에는 붕대 감기라는 기술이 있습니다. 붕대 감기는 t초 동안 붕대를 감으면서 1초마다 x만큼의 체력을 회복합니다. t초 연속으로 붕대를 감는 데 성공한다면 y만큼의 체력을 추가로 회복합니다. 게임 캐릭터에는 최대 체력이 존재해 현재 체력이 최대 체력보다 커지는 것은 불가능합니다. 기술을 쓰는 도중 몬스터에게 공격을 당하면 기술이 취소되고, 공격을 당하는 순간에는 체력을 회복할 수 없습니다. 몬스터에게 공격당해 기술이 취소당하거나 기술이 끝나면 그 즉시 붕대 감기를 다시 사용하며, 연속 성공 시간이 0으로 초기화됩니다. 몬스터의 공격을 받으면 정해진 피해량만큼 현재 체력이 줄어듭니다. 이때, 현재 체력이 0 이하가 되면 캐릭터가 죽으며 더 이상 체력을 회복할 수 없습니다. 당신은 붕대감기 기술의 ..

    [코딩애플] 타입스크립트 HTML 조작시 주의점 (2) : 더 narrowing하기

    우선.. { "compilerOptions": { ... "strictNullChecks": true, ... }, } tsconfig.json 파일에서 strictNullCheck 옵션을 true로 바꾼다. (혹은 "strict" : true로 써둬도 된다) 이렇게 설정하면 TypeScript 컴파일러는 더 엄격한 규칙을 적용하며, 변수에 대한 null 체크가 강제된다. href 조작시 오류 let link = document.querySelector('#link'); if(link instanceof HTMLElement){ link.href = 'https://kakao.com'; } HTMLElement 타입은 href 속성이 없다는 오류가 뜬다. 링크태그의 경우에는 좀더 좁게 narrowing해..

    [코딩애플] 타입스크립트 HTML 조작시 주의점 (1)

    우선.. { "compilerOptions": { ... "strictNullChecks": true, ... }, } tsconfig.json 파일에서 strictNullCheck 옵션을 true로 바꾼다. (혹은 "strict" : true로 써둬도 된다) 이렇게 설정하면 TypeScript 컴파일러는 더 엄격한 규칙을 적용하며, 변수에 대한 null 체크가 강제된다. HTML 조작시 오류 let title = document.querySelector('#title'); title.innerHTML = '안녕하세요'; // title is possibly Element | null TypeScript에서 strictNullChecks 옵션이 활성화된 경우, 위 메서드의 반환 타입은 Element | ..

    [코딩애플] 함수와 object 메서드에 type alias 지정하기

    함수 type alias 함수 타입도 type alias로 저장해서 쓸 수 있다. type NumOut = (x : number, y : number ) => number let ABC :NumOut = function(x,y){ return x + y } function 키워드에는 파라미터 내부나 {} 바로 왼쪽에만 타입지정이 가능하기 때문에 function 함수이름 :NumOut (){} 형태는 사용할 수 없어서 위 코드처럼 사용한다. *** 주의사항 : 함수 type alias를 부착하려면 함수표현식으로 써야 한다. object 메서드 type alias type Member = { name : string, age : number, plusOne : ( x :number ) => number, c..

    [코딩애플] 타입을 특정 값으로 지정하자 : Literal Types (+ as const)

    Literal Types 타입지정을 더욱 strict하게 특정 글자나 숫자만 가질 수 있게 제한을 둘 수 있다. // 문자열 리터럴 타입을 사용한 파라미터 function greet(name: "Alice" | "Bob"): "Hello, Alice!" | "Hello, Bob!" { return `Hello, ${name}!`; } // 숫자 리터럴 타입을 사용한 파라미터 function multiply(a: 2 | 3, b: 2 | 3): 6 { return a * b; } // 불리언 리터럴 타입을 사용한 리턴값 function isAdmin(userType: "admin" | "regular"): boolean { return userType === "admin"; } // 사용 예시 consol..

    [프로그래머스 Level 1] 2022 KAKAO BLIND RECRUITMENT : 신고 결과 받기

    신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 유저를 신고할 수 있습니다. 신고 횟수에 제한은 없습니다. 서로 다른 유저를 계속해서 신고할 수 있습니다. 한 유저를 여러 번 신고할 수도 있지만, 동일한 유저에 대한 신고 횟수는 1회로 처리됩니다. k번 이상 신고된 유저는 게시판 이용이 정지되며, 해당 유저를 신고한 모든 유저에게 정지 사실을 메일로 발송합니다. 유저가 신고한 모든 내용을 취합하여 마지막에 한꺼번에 게시판 이용 정지를 시키면서 정지 메일을 발송합니다. 다음은 전체 유저 목록이 ["muzi", "frodo", "apeach", "neo"]이고, k = 2(즉, 2번..