본문 바로가기

분류 전체보기73

[ 프로그래머스 / 2021 Dev-Matching: 웹 백엔드 개발자(상반기) / Python ] 로또의 최고 순위와 최저 순위 문제 설명 https://programmers.co.kr/learn/courses/30/lessons/77484?language=python3 풀이 코드 def prize_winning(n): lst = [6,6,5,4,3,2,1] return lst[n] def solution(lottos, win_nums): answer = [] #최고순위 correct = 0 for lotto in lottos: if lotto in win_nums: correct += 1 elif lotto == 0: correct += 1 answer.append(prize_winning(correct)) #최저순위 correct = 0 for lotto in lottos: if lotto in win_nums: correct.. 2022. 2. 21.
[ 프로그래머스 / 2021 Dev-Matching: 웹 백엔드 개발자(상반기) / Python ] 다단계 칫솔 판매 문제 설명 https://programmers.co.kr/learn/courses/30/lessons/77486 제한사항 enroll의 길이는 1 이상 10,000 이하입니다. enroll에 민호의 이름은 없습니다. 따라서 enroll의 길이는 민호를 제외한 조직 구성원의 총 수입니다. referral의 길이는 enroll의 길이와 같습니다. referral 내에서 i 번째에 있는 이름은 배열 enroll 내에서 i 번째에 있는 판매원을 조직에 참여시킨 사람의 이름입니다. 어느 누구의 추천도 없이 조직에 참여한 사람에 대해서는 referral 배열 내에 추천인의 이름이 기입되지 않고 “-“ 가 기입됩니다. 위 예제에서는 john 과 mary 가 이러한 예에 해당합니다. enroll 에 등장하는 이름은 조.. 2022. 2. 21.
[프로그래머스 / 2021 Dev-Matching: 웹 백엔드 개발자(상반기) / SQL ] 헤비 유저가 소유한 장소 문제 https://programmers.co.kr/learn/courses/30/lessons/77487#_=_ 코딩테스트 연습 - 헤비 유저가 소유한 장소 PLACES 테이블은 공간 임대 서비스에 등록된 공간의 정보를 담은 테이블입니다. PLACES 테이블의 구조는 다음과 같으며 ID, NAME, HOST_ID는 각각 공간의 아이디, 이름, 공간을 소유한 유저의 아이디를 programmers.co.kr 이 서비스에서는 공간을 둘 이상 등록한 사람을 "헤비 유저"라고 부릅니다. 헤비 유저가 등록한 공간의 정보를 아이디 순으로 조회하는 SQL문을 작성해주세요. 풀이 코드 SELECT * FROM PLACES WHERE HOST_ID IN (SELECT HOST_ID FROM PLACES GROUP BY .. 2022. 2. 17.
[SQL / postgreSQL] SQL 기초 (집계함수, GROUP BY, HAVING) 집계함수란(aggregate function)? 여러 조건을 입력하여 하나의 결과를 반환하는 것 이다. 집계함수는SELECT나 HAVING절에서만 호출될 수 있다. 집계함수의 대표적인 예로 AVG() -평균 값 출력 부동 소수점 값을 반환하기때문에 ROUND함수를 이용해 소숫점 자리를 조정할 수 있다. SELECT ROUND(AVG(열 이름),2) FROM 테이블 명; COUNT() - 행의 개수 count MAX() MIN() SUM() 이 있다. 이밖에도 postgresSQL에는 많은 집계 함수가 있는데 아래의 링크를 참고하면 된다. https://www.postgresql.org/docs/current/functions-aggregate.html 집계 함수를 사용할 때 주의해야 할 점은, 집계함수는.. 2022. 2. 16.
SQL 기초 (SELECT, COUNT, WHERE, ORDER BY, LIMIT, BETWEEN, IN, LIKE, ILIKE) SELECT SELECT 열 이름 FROM 테이블; 이때, 열 이름에 *를 쓰면 테이블 전체의 모든 열을 가져온다. DISTINCT SELECT DISTINCT(열 이름) FROM 테이블; 중복 값을 제거한 값을 보여준다. COUNT SELECT COUNT(열 이름) FROM 테이블; 해당 테이블의 SELECT로 불러온 열에 해당하는 데이터의 개수를 count해준다. WHERE SELECT 열 이름 FROM 테이블 WHERE 조건식; WHERE은 FROM뒤에 쓰는 명령으로 WHERE 뒤에는 조건식이 나온다. 조건식은 열에 조건을 지정하여 그에 맞는 행이 반환되도록 한다. 즉, SELECT 문에서 반환되는 행을 걸러내기 위해 사용된다. 예를들어 customer 테이블에 있는 id가 hello인 사람의 em.. 2022. 2. 16.
[프로그래머스 / 2022 KAKAO BLIND RECRUITMENT / Python ] 파괴되지 않은 건물 문제 설명 [본 문제는 정확성과 효율성 테스트 각각 점수가 있는 문제입니다.] N x M 크기의 행렬 모양의 게임 맵이 있습니다. 이 맵에는 내구도를 가진 건물이 각 칸마다 하나씩 있습니다. 적은 이 건물들을 공격하여 파괴하려고 합니다. 건물은 적의 공격을 받으면 내구도가 감소하고 내구도가 0이하가 되면 파괴됩니다. 반대로, 아군은 회복 스킬을 사용하여 건물들의 내구도를 높이려고 합니다. 적의 공격과 아군의 회복 스킬은 항상 직사각형 모양입니다. 예를 들어, 아래 사진은 크기가 4 x 5인 맵에 내구도가 5인 건물들이 있는 상태입니다. 첫 번째로 적이 맵의 (0,0)부터 (3,4)까지 공격하여 4만큼 건물의 내구도를 낮추면 아래와 같은 상태가 됩니다. 두 번째로 적이 맵의 (2,0)부터 (2,3)까지 공.. 2022. 2. 14.
[프로그래머스 / 2022 KAKAO BLIND RECRUITMENT / Python ] 양궁대회 문제 설명 카카오배 양궁대회가 열렸습니다. 라이언은 저번 카카오배 양궁대회 우승자이고 이번 대회에도 결승전까지 올라왔습니다. 결승전 상대는 어피치입니다. 카카오배 양궁대회 운영위원회는 한 선수의 연속 우승보다는 다양한 선수들이 양궁대회에서 우승하기를 원합니다. 따라서, 양궁대회 운영위원회는 결승전 규칙을 전 대회 우승자인 라이언에게 불리하게 다음과 같이 정했습니다. 어피치가 화살 n발을 다 쏜 후에 라이언이 화살 n발을 쏩니다. 점수를 계산합니다. 과녁판은 아래 사진처럼 생겼으며 가장 작은 원의 과녁 점수는 10점이고 가장 큰 원의 바깥쪽은 과녁 점수가 0점입니다. 만약, k(k는 1~10사이의 자연수)점을 어피치가 a발을 맞혔고 라이언이 b발을 맞혔을 경우 더 많은 화살을 k점에 맞힌 선수가 k 점을 .. 2022. 2. 14.
[프로그래머스 / 2022 KAKAO BLIND RECRUITMENT / Python]k진수에서 소수 개수 구하기 문제 설명 양의 정수 n이 주어집니다. 이 숫자를 k진수로 바꿨을 때, 변환된 수 안에 아래 조건에 맞는 소수(Prime number)가 몇 개인지 알아보려 합니다. 0P0처럼 소수 양쪽에 0이 있는 경우 P0처럼 소수 오른쪽에만 0이 있고 왼쪽에는 아무것도 없는 경우 0P처럼 소수 왼쪽에만 0이 있고 오른쪽에는 아무것도 없는 경우 P처럼 소수 양쪽에 아무것도 없는 경우 단, P는 각 자릿수에 0을 포함하지 않는 소수입니다. 예를 들어, 101은 P가 될 수 없습니다. 예를 들어, 437674을 3진수로 바꾸면 211020101011입니다. 여기서 찾을 수 있는 조건에 맞는 소수는 왼쪽부터 순서대로 211, 2, 11이 있으며, 총 3개입니다. (211, 2, 11을 k진법으로 보았을 때가 아닌, 10진.. 2022. 2. 14.
[Python / Crawling] Python 문자열 공백 없애기 우리 학교 공지사항을 크롤링을 하기 위해 해당 tag의 text들을 추출했는데 무수한 공백과 함께 공지사항이 출력되었다. 이를 없애기 위해서 파이썬 내장 함수인 strip()를 써줬다. text.strip()을 쓰면 오른쪽 왼쪽에 있는 무수한 공백들을 다 제거해준다. strip() -오른쪽 왼쪽 공백을 제거 lstrip() - 왼쪽 공백을 제거 rstrip() - 오른쪽 공백을 제거 +)추가로 모든 공백을 다 없애고 싶으면 replace(" ","")를 이용하면 된다.! 공백이 아닌 문자열도 지울 수 있는데, example = "Hello World!" print(example.lstrip("He")) #출력 결과:llo World! print(example.rstrip("rld!")) #출력 결과:He.. 2022. 2. 9.