전체 글

오늘 할 일은 내일로 미루고 내일 할 일은 생각하지 말자
※ 7월 20일 수정 내역 테스트 케이스 13번에 주어지는 파라미터는 '1' 입니다. 13번 테스트 케이스만 실패가 나오시는 분들은 지문을 잘 읽고 다시 천천히 풀어주세요잉 문제 설명 1937년 Collatz란 사람에 의해 제기된 이 추측은, 주어진 수가 1이 될때까지 다음 작업을 반복하면, 모든 수를 1로 만들 수 있다는 추측입니다. 작업은 다음과 같습니다. 1-1. 입력된 수가 짝수라면 2로 나눕니다. 1-2. 입력된 수가 홀수라면 3을 곱하고 1을 더합니다. 2. 결과로 나온 수에 같은 작업을 1이 될 때까지 반복합니다. 예를 들어, 입력된 수가 6이라면 6→3→10→5→16→8→4→2→1 이 되어 총 8번 만에 1이 됩니다. 위 작업을 몇 번이나 반복해야하는지 반환하는 함수, solution을 완..
· Knowledge
IT 전공자라면 한번쯤은 들어봤을법한 '깃허브' 깃허브에서 정적 웹페이지 무료 호스팅 서비스를 제공한다는 얘기 들어보셨나요? 이미 많은 사람들이 해당 기능을 사용하여 포트폴리오, 블로그, 프로젝트 소개용 사이트 등을 제작하고 있습니다. 저도 한때 마크다운 작성법을 익히기 위해 깃허브 블로그를 만들어 학원에서 공부했던 내용들을 .md 파일로 작성하여 블로그에 게시하기도 하였는데요, 이렇게 익힌 마크다운 작성법은 현재 실무에서도 유용하게 쓰고 있습니다. 추후에 기회가 된다면 마크다운 문법에 대해 적어보도록 하고, 우선은 깃허브 블로그 만드는 방법에 대해 설명드리겠습니다. 이 글을 검색하고 오신분들은 당연히 가지고 계시겠지만, 깃허브 블로그가 없는 분들은 아래의 링크를 클릭하여 깃허브로 이동해 주세요. 홈페이..
문제 설명 어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 return 하도록 solution 함수를 완성해주세요. 제한사항 absolutes의 길이는 1 이상 1,000 이하입니다. absolutes의 모든 수는 각각 1 이상 1,000 이하입니다. signs의 길이는 absolutes의 길이와 같습니다. signs[i] 가 참이면 absolutes[i] 의 실제 정수가 양수임을, 그렇지 않으면 음수임을 의미합니다. 입출력 예 absolutes signs result [4,7,12] [true,false,true] 9 [1,2,3] [false,fals..
· Blog
얼마 전 지인으로부터 뱅크 샐러드 유전자 검사 키트를 신청했다는 소식을 들었다. 뱅크 샐러드는 아주 예~전에 대학 다닐 때 가계부 앱을 써봐야겠다 해서 깔았다가 어느 순간 삭제했던 앱이었다. 사실 그때는 고정적인 수입도 없었고 얼마 안 되는 돈인데 굳이 가계부까지 써가면서 돈을 관리해야 할까?라는 생각에 안 쓰게 됐던 거 같다. 최근에는 취업하고 약 1년 5개월이라는 시간이 지났는데 월급이라는 고정수입이 생겼음에도 불구하고 나도 모르게 새는 돈이 많아져서 가계부로 편하게 지출 내역을 확인하려고 다시 앱을 설치하고 마이 데이터까지 연동해놓은 상태였다. 돈이 생기니까 새는 돈이 많아지는 게 당연한 거겠지..? 앱을 사용하면서 자연스럽게 무료 유전자 검사라는 항목을 본 적이 있었는데 무료라니 왠지 찝찝하고 싼..
문제 설명 대문자와 소문자가 섞여있는 문자열 s가 주어집니다. s에 'p'의 개수와 'y'의 개수를 비교해 같으면 True, 다르면 False를 return 하는 solution를 완성하세요. 'p', 'y' 모두 하나도 없는 경우는 항상 True를 리턴합니다. 단, 개수를 비교할 때 대문자와 소문자는 구별하지 않습니다. 예를 들어 s가 "pPoooyY"면 true를 return하고 "Pyy"라면 false를 return합니다. 제한사항 문자열 s의 길이 : 50 이하의 자연수 문자열 s는 알파벳으로만 이루어져 있습니다. 입출력 예 s answer "pPoooyY" true "Pyy" false 입출력 예 설명 입출력 예 #1 'p'의 개수 2개, 'y'의 개수 2개로 같으므로 true를 return 합..
문제 설명 길이가 n이고, "수박수박수박수...."와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 "수박수박"을 리턴하고 3이라면 "수박수"를 리턴하면 됩니다. 제한 조건 n은 길이 10,000이하인 자연수입니다. 입출력 예 n return 3 "수박수" 4 "수박수박" 길이가 n으로 주어졌을 때 n까지 수박수박수박수..와 같은 패턴을 유지하는 문자열을 리턴하는 함수를 만들면 된다! 다 풀고나서 다른 사람 풀이를 보며 한참을 웃었는데 ㅋㅋㅋㅋㅋ 기똥차다 많은 좋아요와 댓글을 받은 문제 ㅋㅋㅋㅋㅋㅋㅋ 진짜 와후.. 예전에 이런 짤을 본 적이 있었는데 이 정도의.. 경지에 오른 사람을 실제로 보니까 더 반가웠다. 어쨌든 아래는 해답 package list..
문제 설명 새로 생긴 놀이기구는 인기가 매우 많아 줄이 끊이질 않습니다. 이 놀이기구의 원래 이용료는 price원 인데, 놀이기구를 N 번 째 이용한다면 원래 이용료의 N배를 받기로 하였습니다. 즉, 처음 이용료가 100이었다면 2번째에는 200, 3번째에는 300으로 요금이 인상됩니다. 놀이기구를 count번 타게 되면 현재 자신이 가지고 있는 금액에서 얼마가 모자라는지를 return 하도록 solution 함수를 완성하세요. 단, 금액이 부족하지 않으면 0을 return 하세요. 제한사항 놀이기구의 이용료 price : 1 ≤ price ≤ 2,500, price는 자연수 처음 가지고 있던 금액 money : 1 ≤ money ≤ 1,000,000,000, money는 자연수 놀이기구의 이용 횟수 c..
문제 설명 프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다. 전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요. 제한 조건 s는 길이 4 이상, 20이하인 문자열입니다. 입출력 예 phone_number return "01033334444" "*******4444" "027778888" "*****8888" 휴대폰번호와 전화번호 구분없이 맨 뒷자리 4자리를 제외한 나머지 숫자는 마스킹 처리하면 되는 문제. 실무에서는 쿼리로도 해결 가능하고 자바로도 해결 가능한 문제이다! 다른 레벨1 문제들을 많이 풀면서 항상 언제풀지~ 하면서 봤던 ..
· Engineering
CVE 링크 : https://nvd.nist.gov/vuln/detail/CVE-2021-44228 매우 유용하게 사용중인 아파치 오픈소스 중 로깅 유틸리티 프로그램인 LOG4J에서 매우 치명적인 취약점이 발견되어 요즘 뉴스, 인터넷이 뜨겁습니다. 로그를 이쁘게 찍어주는 매우 고마운 프로그램인데요, log4j에 대한 설명보다는 어떻게 처리했는지, 어떻게 그나마 쉽게 조치할 수 있었는지 적어보려고 합니다. 제가 일하고 있는 직장에서도 위의 취약점을 조치하여 보고하라고 해서 ㅠㅠ 늦은감이 없지않아 있지만 오늘 오후 급하게 부랴부랴 작업했습니다. 대상이 되는 log4j의 버전은 아래와 같습니다. □ 영향을 받는 버전 o Apache Log4j 2 - 2.0-beta9 ~ 2.14.1 모든버전 o Apache..
문제 설명 함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요. 제한 조건 x는 -10000000 이상, 10000000 이하인 정수입니다. n은 1000 이하인 자연수입니다. 입출력 예 x n answer 2 5 [2,4,6,8,10] 4 3 [4,8,12] -4 2 [-4, -8] ※ 제한조건을 잘 읽어보자! 정수 x와 자연수 n을 입력 받아 x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야하는 문제! 2와 5를 파라미터로 넘겨준다면, 2부터 시작해 2씩 증가하는 5개의 숫자 리스트를 리턴하면 된다. 어? 너무 쉬운 거 아니야..
문제 설명 자연수 n이 매개변수로 주어집니다. n을 x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x를 return 하도록 solution 함수를 완성해주세요. 답이 항상 존재함은 증명될 수 있습니다. 제한사항 3 ≤ n ≤ 1,000,000 입출력 예 n result 10 3 12 11 입출력 예 설명 입출력 예 #1 10을 3으로 나눈 나머지가 1이고, 3보다 작은 자연수 중에서 문제의 조건을 만족하는 수가 없으므로, 3을 return 해야 합니다. 입출력 예 #2 12를 11로 나눈 나머지가 1이고, 11보다 작은 자연수 중에서 문제의 조건을 만족하는 수가 없으므로, 11을 return 해야 합니다. 매개변수로 주어진 n을 x로 나눴을 때 나머지가 1이 되는 가장 작은 자연수 x를 retu..
문제 설명 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요. 제한사항 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다. completion의 길이는 participant의 길이보다 1 작습니다. 참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있습니다. 참가자 중에는 동명이인이 있을 수 있습니다. 입출력 예 participant completion return ["leo", "kik..
문제 설명 정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요. 제한 사항 n은 0 이상 3000이하인 정수입니다. 입출력 예 n return 12 28 5 6 입출력 예 설명 입출력 예 #1 12의 약수는 1, 2, 3, 4, 6, 12입니다. 이를 모두 더하면 28입니다. 입출력 예 #2 5의 약수는 1, 5입니다. 이를 모두 더하면 6입니다. 비교적 쉬운 난이도 1의 연습문제, 약수의 합 n으로 주어지는 정수의 모든 약수를 더하고 그 값을 사용자에게 출력해주면 되는 문제. 자바의 % 연산자와 반복문만 사용할 수 있다면 간단하게 풀 수 있는 문제이다. 1부터 n까지 1씩 증가시키면서 반복문을 실행하고, 증가하는 수와 n을 나눴을 때 결과가 0이라면 해당 수는..
문제 설명 0부터 9까지의 숫자 중 일부가 들어있는 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 1 ≤ numbers의 길이 ≤ 9 0 ≤ numbers의 모든 수 ≤ 9 numbers의 모든 수는 서로 다릅니다. 입출력 예 numbers result [1,2,3,4,6,7,8,0] 14 [5,8,4,0,6,7,9] 6 입출력 예 설명 입출력 예 #1 5, 9가 numbers에 없으므로, 5 + 9 = 14를 return 해야 합니다. 입출력 예 #2 1, 2, 3이 numbers에 없으므로, 1 + 2 + 3 = 6을 return 해야 합니다. 연휴..와 야근을..
하샤드 수(harshad number)는 주어진 진법에서 수의 각 자릿수 숫자의 합으로 나눠떨어지는 자연수를 말한다. 인도의 수학자 카프리카가 정의했으며, '기쁨을 준다'는 뜻의 산스크리트어 단어인 harshad에서 유래했다. (출처 : 꺼무위키) 문제 하샤드 수 문제 설명 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요. 제한 조건 x는 1 이상, 10000 이하인 정수입니다. 입출력 예 arr return 10 true 12 true 11 false 13 false 입출력 예 ..
헌일