분류 전체보기
-
문제숫자들이 2차원 배열에 있다. 가장 윗 행에서 가장 아래 행까지 내려올때 걸 쳐지는 길에 있는 숫자의 합이 가장 높은것을 찾아보자. 이 때 어느 한 cell에 서 다음 cell로 내려올 경우에는 바로아래, 왼쪽대각선아래, 오른쪽대각선 아 래로만 이동이 가능하다. 풀이방법1. 2차원 배열을 입력받은 뒤, 해당 셀에서 최대 합을 저장할 DP테이블을 만든다.2. 각 셀에서 최대 합 = 현재 값 + MAX( 1번 셀 , 2번 셀 , 3번 셀)3. 위 2번을 반복하여 모든 셀에 대해 최대 합을 계산하고, 가장 아래 행의 최대값이 주어진 문제의 답이 된다. 코드Pythonmatrix = [ [3, 4, 9, -2, 2, 51, -23, 2, -1], [223, 7, 8, -11, 5, -99, 2,..
[Dynamic Programming] 숫자판 놀이문제숫자들이 2차원 배열에 있다. 가장 윗 행에서 가장 아래 행까지 내려올때 걸 쳐지는 길에 있는 숫자의 합이 가장 높은것을 찾아보자. 이 때 어느 한 cell에 서 다음 cell로 내려올 경우에는 바로아래, 왼쪽대각선아래, 오른쪽대각선 아 래로만 이동이 가능하다. 풀이방법1. 2차원 배열을 입력받은 뒤, 해당 셀에서 최대 합을 저장할 DP테이블을 만든다.2. 각 셀에서 최대 합 = 현재 값 + MAX( 1번 셀 , 2번 셀 , 3번 셀)3. 위 2번을 반복하여 모든 셀에 대해 최대 합을 계산하고, 가장 아래 행의 최대값이 주어진 문제의 답이 된다. 코드Pythonmatrix = [ [3, 4, 9, -2, 2, 51, -23, 2, -1], [223, 7, 8, -11, 5, -99, 2,..
2024.06.14 -
문제정수 n(2나타낼 수 있는 방법의 수를 구하시오 예를 들어 n=4인 경우는 아래와 같이 5가지이다. 4 = 1+1+1+1 = 2+1+1 = 1+2+1 = 1+1+2 = 2+2 풀이방법1을 구할 때구하는 방식이 1 하나밖에 없으므로, dp[0] = 1로 저장 2를 구할 때구하는 방식은 1+1과 2가 있으므로, dp[1] = 2로 저장 3부터 1과 2의 합으로 표현(dp)3은 1+1+1,1+2, 2+1로 총 3가지가 있는데, 이것을 표현하려고 하면 아래와 같다1 + dp[1] : 방법 2가지2 + dp[0] : 방법 1가지방식을 모두 더한 결과인 3을 새로운 dp[2]에 저장(dp[2] -> 3을 1이나 2의 합으로 표현하는 경우의수가 들어있음) 4를 구할 때이제 응용하면 4를 구할때 부터는 4는 1+..
[Dynamic Programming] 1과 2의 합문제정수 n(2나타낼 수 있는 방법의 수를 구하시오 예를 들어 n=4인 경우는 아래와 같이 5가지이다. 4 = 1+1+1+1 = 2+1+1 = 1+2+1 = 1+1+2 = 2+2 풀이방법1을 구할 때구하는 방식이 1 하나밖에 없으므로, dp[0] = 1로 저장 2를 구할 때구하는 방식은 1+1과 2가 있으므로, dp[1] = 2로 저장 3부터 1과 2의 합으로 표현(dp)3은 1+1+1,1+2, 2+1로 총 3가지가 있는데, 이것을 표현하려고 하면 아래와 같다1 + dp[1] : 방법 2가지2 + dp[0] : 방법 1가지방식을 모두 더한 결과인 3을 새로운 dp[2]에 저장(dp[2] -> 3을 1이나 2의 합으로 표현하는 경우의수가 들어있음) 4를 구할 때이제 응용하면 4를 구할때 부터는 4는 1+..
2024.06.14 -
문제https://level.goorm.io/exam/171280/%EC%84%B1%EC%A0%81%ED%91%9C/quiz/1설명딕셔너리와 튜플을 주로 활용했다. 코드dict = {}cnt_dict={}n,m = map(int,input().split())lst = []for i in range(n): subject,score = map(int,input().split()) lst.append((subject,score)) for x in lst: subject,socre = x[0],x[1] if subject in dict.keys(): dict[subject]+=socre cnt_dict[subject]+=1 else: dict[subject]=socre cnt_dict[subject]=..
[goorm Level2] 성적표문제https://level.goorm.io/exam/171280/%EC%84%B1%EC%A0%81%ED%91%9C/quiz/1설명딕셔너리와 튜플을 주로 활용했다. 코드dict = {}cnt_dict={}n,m = map(int,input().split())lst = []for i in range(n): subject,score = map(int,input().split()) lst.append((subject,score)) for x in lst: subject,socre = x[0],x[1] if subject in dict.keys(): dict[subject]+=socre cnt_dict[subject]+=1 else: dict[subject]=socre cnt_dict[subject]=..
2024.06.14 -
문제https://level.goorm.io/exam/195691/%ED%8F%AD%ED%83%84-%EA%B5%AC%ED%98%84%ED%95%98%EA%B8%B0-2/quiz/1풀이1. 2차원 리스트 ground로 땅을 표현했다. 땅에 폭탄 값을 지정할 때 이 ground를 바꿀 것이다2. value는 좌표 (y,x) tuple을 키값으로 초기에 표시되어 있던 값을 저장한다.(ground는 변경용, value는 초기 기록용)3. nx,ny를 통해 현위치,상,하,좌,우 를 모두 돌도록 처리했다. 지금 좌표 nx,ny에 따라 그 지점의 초기 지정값(value에 저장해놨다)인 state값에 따라, 적절한 값을 더해줬다코드n,k = map(int,input().split())ground = []bomb = ..
[goorm Level 2] 폭탄 구현하기 (2)문제https://level.goorm.io/exam/195691/%ED%8F%AD%ED%83%84-%EA%B5%AC%ED%98%84%ED%95%98%EA%B8%B0-2/quiz/1풀이1. 2차원 리스트 ground로 땅을 표현했다. 땅에 폭탄 값을 지정할 때 이 ground를 바꿀 것이다2. value는 좌표 (y,x) tuple을 키값으로 초기에 표시되어 있던 값을 저장한다.(ground는 변경용, value는 초기 기록용)3. nx,ny를 통해 현위치,상,하,좌,우 를 모두 돌도록 처리했다. 지금 좌표 nx,ny에 따라 그 지점의 초기 지정값(value에 저장해놨다)인 state값에 따라, 적절한 값을 더해줬다코드n,k = map(int,input().split())ground = []bomb = ..
2024.06.13 -
문제https://level.goorm.io/exam/159667/%EC%B6%9C%EC%84%9D%EB%B6%80/quiz/1 풀이방법(이름,키) 쌍의 튜플을 attendance리스트에 넣어서 관리attendance리스트를, lambda로 sort하는 문법을 사용문법sorted_list = sorted(my_list, key=lambda x: (x[0], x[1]))key값에 비교 기준을 두 개를 넣으면, x[0]이 동일할 경우 x[1]을 비교한다코드n,k = map(int,input().split())attendance = []for _ in range(n): name,height = input().split() attendance.append((name,height))attendance = sor..
[goorm Level1] 출석부문제https://level.goorm.io/exam/159667/%EC%B6%9C%EC%84%9D%EB%B6%80/quiz/1 풀이방법(이름,키) 쌍의 튜플을 attendance리스트에 넣어서 관리attendance리스트를, lambda로 sort하는 문법을 사용문법sorted_list = sorted(my_list, key=lambda x: (x[0], x[1]))key값에 비교 기준을 두 개를 넣으면, x[0]이 동일할 경우 x[1]을 비교한다코드n,k = map(int,input().split())attendance = []for _ in range(n): name,height = input().split() attendance.append((name,height))attendance = sor..
2024.06.12 -
람다 함수란?람다(lambda) 함수는익명 함수(anonymous function)라고도 부르며, 한 줄짜리 함수를 정의하거나, 함수(ex- sorted() ,filter(),map()등) 를 인자로 전달해야 하는 경우에 매우 유용하게 사용 됩니다. def 키워드를 사용한 일반 함수와 달리, lambda키워드를 사용하여 정의합니다.람다 함수는 다음과 같은 형태로 정의됩니다.lambda 인자 : 표현식 람다(lambda) 함수의 활용 예제 1. map() 함수와 함께 사용map() 함수는 시퀀스(리스트, 튜플 등)의 모든 요소에 함수를 적용한 결과를 반환합니다.이 때, map() 함수와 함께 람다 함수를 사용할 수 있습니다. 예시) [1,2,3,4,5] -> [2,4,6,8,10]lst = [1, 2, ..
[Python] 람다(lambda)함수란람다 함수란?람다(lambda) 함수는익명 함수(anonymous function)라고도 부르며, 한 줄짜리 함수를 정의하거나, 함수(ex- sorted() ,filter(),map()등) 를 인자로 전달해야 하는 경우에 매우 유용하게 사용 됩니다. def 키워드를 사용한 일반 함수와 달리, lambda키워드를 사용하여 정의합니다.람다 함수는 다음과 같은 형태로 정의됩니다.lambda 인자 : 표현식 람다(lambda) 함수의 활용 예제 1. map() 함수와 함께 사용map() 함수는 시퀀스(리스트, 튜플 등)의 모든 요소에 함수를 적용한 결과를 반환합니다.이 때, map() 함수와 함께 람다 함수를 사용할 수 있습니다. 예시) [1,2,3,4,5] -> [2,4,6,8,10]lst = [1, 2, ..
2024.06.12 -
문제 지나다니는 길을 'O', 장애물을 'X'로 나타낸 직사각형 격자 모양의 공원에서 로봇 강아지가 산책을 하려합니다. 산책은 로봇 강아지에 미리 입력된 명령에 따라 진행하며, 명령은 다음과 같은 형식으로 주어집니다. ["방향 거리", "방향 거리" … ] 예를 들어 "E 5"는 로봇 강아지가 현재 위치에서 동쪽으로 5칸 이동했다는 의미입니다. 로봇 강아지는 명령을 수행하기 전에 다음 두 가지를 먼저 확인합니다. 주어진 방향으로 이동할 때 공원을 벗어나는지 확인합니다. 주어진 방향으로 이동 중 장애물을 만나는지 확인합니다. 위 두 가지중 어느 하나라도 해당된다면, 로봇 강아지는 해당 명령을 무시하고 다음 명령을 수행합니다. 공원의 가로 길이가 W, 세로 길이가 H라고 할 때, 공원의 좌측 상단의 좌표는 ..
[프로그래머스 LV1] 공원 산책문제 지나다니는 길을 'O', 장애물을 'X'로 나타낸 직사각형 격자 모양의 공원에서 로봇 강아지가 산책을 하려합니다. 산책은 로봇 강아지에 미리 입력된 명령에 따라 진행하며, 명령은 다음과 같은 형식으로 주어집니다. ["방향 거리", "방향 거리" … ] 예를 들어 "E 5"는 로봇 강아지가 현재 위치에서 동쪽으로 5칸 이동했다는 의미입니다. 로봇 강아지는 명령을 수행하기 전에 다음 두 가지를 먼저 확인합니다. 주어진 방향으로 이동할 때 공원을 벗어나는지 확인합니다. 주어진 방향으로 이동 중 장애물을 만나는지 확인합니다. 위 두 가지중 어느 하나라도 해당된다면, 로봇 강아지는 해당 명령을 무시하고 다음 명령을 수행합니다. 공원의 가로 길이가 W, 세로 길이가 H라고 할 때, 공원의 좌측 상단의 좌표는 ..
2024.06.10 -
문제 설명 문제풀이조건에 따라 하나씩 차례차례 접근했다.replace함수와 리스트 슬라이싱을 애용한 것 같다.조건에 따라 차근차근 구현하면 됐던 문제였다 def solution(new_id): forbidden_string = ["~","!","@","#","$","%","^","&","*","(",")","=","+","[","{","]","}",":","?",",","","/"] alpha = { 'A': 'a', 'B': 'b', 'C': 'c', 'D': 'd', 'E': 'e', 'F': 'f', 'G': 'g', 'H': 'h', 'I': 'i', 'J': 'j', 'K': 'k', 'L': 'l', 'M': 'm', 'N': 'n', 'O': '..
[프로그래머스 LV.1] 신규 아이디 추천문제 설명 문제풀이조건에 따라 하나씩 차례차례 접근했다.replace함수와 리스트 슬라이싱을 애용한 것 같다.조건에 따라 차근차근 구현하면 됐던 문제였다 def solution(new_id): forbidden_string = ["~","!","@","#","$","%","^","&","*","(",")","=","+","[","{","]","}",":","?",",","","/"] alpha = { 'A': 'a', 'B': 'b', 'C': 'c', 'D': 'd', 'E': 'e', 'F': 'f', 'G': 'g', 'H': 'h', 'I': 'i', 'J': 'j', 'K': 'k', 'L': 'l', 'M': 'm', 'N': 'n', 'O': '..
2024.06.09