문제 링크 : https://www.acmicpc.net/problem/2533문제 정보문제 개요 백준 2533번 사회망 서비스(SNS) 문제는 트리 형태의 SNS 네트워크에서 모든 사람이 최소한 한 명의 얼리 어답터(Early Adopter)와 연결되도록 하는 최소 얼리 어답터 수를 구하는 문제입니다.노드(사용자)들은 트리 형태로 연결되어 있습니다.각 사용자는 얼리 어답터(새로운 기술을 먼저 사용하는 사람) 또는 일반 사용자일 수 있습니다.최소한의 얼리 어답터를 선정하여 모든 일반 사용자가 최소 한 명의 얼리 어답터와 연결되도록 해야 합니다.해결 방법이 문제는 트리 DP(Tree DP) 기법을 활용하여 해결하였습니다.각 노드(사용자)가 얼리 어답터인 경우와 아닌 경우를 나눠서 탐색합니다.DFS(깊이 우..
문제 링크 : https://www.acmicpc.net/problem/1600문제 정보 문제 개요백준 1600번 말이 되고픈 원숭이 문제는 격자판에서 원숭이가 말의 이동을 일정 횟수(k번)만 사용할 수 있는 상황에서 (0,0)에서 (w-1, h-1)까지의 최단 거리를 구하는 문제입니다.원숭이는 일반적으로 상, 하, 좌, 우로 이동할 수 있습니다.단, 말의 움직임(체스 나이트의 이동 패턴)을 최대 k번까지 사용할 수 있습니다.도착점에 도달할 수 없으면 -1을 반환합니다. 해결 방법이 문제는 최단 거리 문제이므로 BFS(너비 우선 탐색)을 사용하여 해결하였습니다.일반적인 최단 거리 문제에서는 visited 배열을 2차원으로 사용하지만, 이 문제에서는 말처럼 움직일 수 있는 횟수(k)가 추가된 3차원 방문..
💡 파이썬 2차원 배열 회전하기 zip() 사용하기 : 시계 방향으로 회전 mylist = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] new_list = list(map(list, zip(*mylist[::-1]))) for i in mylist:# 기존 리스트 print(i) print() for i in new_list:# 회전한 리스트 print(i) 실행결과 [1, 2, 3] [4, 5, 6] [7, 8, 9] [7, 4, 1] [8, 5, 2] [9, 6, 3] zip() 사용하기 : 반시계 방향으로 회전 mylist = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] new_list = list(map(list, zip(*mylist)))[::-1] for i i..
https://school.programmers.co.kr/learn/courses/30/lessons/42746 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 💡 문제 풀이 접근 방법 1. numbers 리스트를 str로 형 변환 후, 정렬 str형 숫자를 비교하면 0번 인덱스부터 비교, 그다음 1번 인덱스 비교, 그다음 2번 ,... ( 9 > 738 > 5 > 4589 > 333 > 24 > 1 이런 느낌 ) 2. str로 변경한 숫자에 3을 곱한 값을 기준으로 재정렬 34, 30, 3 같은 경우에 34, 3, 30 순으로 와야 함 number..
https://school.programmers.co.kr/learn/courses/30/lessons/43238 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 💡 문제 풀이 이분 탐색 이분 탐색 : 정렬되어 있는 리스트에서 탐색 범위를 절반씩 좁혀가며 데이터를 탐색하는 방법 접근 방법 찾고자 하는 시간을 범위로 하여 이분 탐색 임의의 시간 동안 몇 명을 심사할 수 있는지 확인 left : min(times) -> n이 1일 경우를 고려 right : n*min(times) 💻 문제 코드 def solution(n, times): left, righ..
https://school.programmers.co.kr/learn/courses/30/lessons/12914?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 문제 설명 프로그래머스 Lv2. 2xn 타일링 문제하고 매우 비슷한 문제입니다. DP 기초 문제입니다. n =5까지 값을 구하면 점화식을 쉽게 세울 수 있습니다. f(n) = f(n-1) + f(n-2) def solution(n): dp = [0]*2001 dp[1]=1 dp[2]=2 for i in range(3,n+1): dp[i] = dp[i-1]%123..
https://school.programmers.co.kr/learn/courses/30/lessons/12905 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 문제풀이 DP로 풀어야 겠다는 생각을 하기까지 좀 걸린 문제였습니다.. 아마 DP로 풀지 않으면 효율성 테스트에서 통과되지 않을거에요! 현재 위치 값이 1일 경우, 왼쪽 대각선 위, 위, 왼쪽 중 최솟값을 찾아 1더해서 저장합니다. 다음 과정을 계속 반복하면 이런 배열 모습이 나옵니다. 배열에 저장된 값중 최댓값을 찾아 출력하면 됩니다. 풀이 코드 def solution(board): ..
[프로그래머스] Lv.2 리코쳇 로봇 - 파이썬(Python) 풀이 https://school.programmers.co.kr/learn/courses/30/lessons/169199 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 리코쳇 로봇이라는 보드게임이 있습니다. 이 보드게임은 격자모양 게임판 위에서 말을 움직이는 게임으로, 시작 위치에서 목표 위치까지 최소 몇 번만에 도달할 수 있는지 말하는 게임입니다. 이 게임에서 말의 움직임은 상, 하, 좌, 우 4방향 중 하나를 선택해서 게임판 위의 장애물이나 맨 끝에 부딪힐 때까지 미끄러져 이동하..
[Baekjoon] 단계별로 풀어보기 | 1차원 배열 | 8959 OX퀴즈 8958 OX퀴즈 파이썬 코드 답안 N= int(input()) for i in range(N): list=input() cnt=0 sum=0 for j in range(len(list)): if list[j]=='O': cnt+=1 if list[j]=='X': cnt=0 sum+=cnt print(sum) O, X로 이루어진 문자열을 list로 받기 list길이만큼 반복하고 list의 첫 번째 문자부터 O일 경우 cnt+1, X일 경우 cnt 0 초기화 틀린 내용이 있다면 댓글로 알려주세요 :) 문제의 자세한 내용은 백준 사이트를 확인해주세요 ;)
[Baekjoon] 단계별로 풀어보기 | 1차원 배열 | 1546 평균 1546 평균 파이썬 코드 답안 N= int(input()) list = list(map(int,input().split())) list1 = [i/max(list)*100 for i in list] print(sum(list1)/N) 작성한 코드 내용 N에다가 시험 본 과목의 개수를 입력 받습니다 list에다가 점수들을 입력받고 list1에다가 점수들을 문제에 맞게 연산해서 리스트로 만들어줬습니다 출력은 list1의 평균이 나오도록 했습니다 이번 문제는 연산 부분만 잘 작성하면 될 거 같아요 틀린 내용이 있다면 댓글로 알려주세요 :) 문제의 자세한 내용은 백준 사이트를 확인해주세요 ;)