boj [ BOJ / Python ] 14890번 경사로 이번 문제는 삼성 기출 문제로, 조건들을 따져가며 구현하는 방식으로 해결하였다. 컬럼을 확인하는 함수 chk_column과 로우를 확인하는 함수 chk_row를 작성하였다. 아래에서 위로 향하며 연속되는 수의 갯수를 DP를 이용하여 dp1에 저장한다. 위에서 아래로 향하며 연속되는 수의 갯수를 DP를 이용하여 dp2에 저장한다. 아래에서 위로 향하며 인접한 값과 비교하며 1 차이가 날 경우에... 삼성 기출pythonbojboj [BOJ] 백준 4673 - 셀프 넘버 👩🏻💻 문제 👩🏻💻 정답 코드 numbers 집합에 1부터 10000까지를 넣고, for문을 돌리면서 각 자릿수와 숫자 자체를 generated 집합에 넣어 준다. 집합을 사용함으로써 중복 없이 처리할 수 있고, 마지막에 numbers-generated으로 차집합을 구해 답을 낼 수 있다. 대신 하나씩 증가하는 순서랬으므로 sorted으로 정렬 필요 👩🏻💻 Remember sorted(... 코딩테스트python알고리즘bojboj 백준 16234번 인구 이동 cpp python 시뮬레이션 구현 문제에 bfs 한스푼 얹은 느낌의 문제네요 로직을 설명해보겠습니다 인구 이동이 없을때까지 반복하기 때문에 while문안에 코드를 작성하고 한번의 반복문마다 인구 이동이 있었는지 검사를 합니다 만약 이번 턴에 한번도 인구이동이 없다면 break문으로 나옵니다 N*N크기의 땅을 이차원 배열에 저장을 해둡니다 동시에 똑같은 크기의 이차원 배열을 0으로 채워서 만... cpppythonbojsimulationBFSBFS [백준]2513 통학 버스(자바) 또, 이 아파트 단지 주민을 위해 도로 위 한 지점에 학교 하나를 신설하였다. 각각의 아파트 단지와 학교의 위치는 도로 위의 좌표로 주어지며, 또 각 아파트 단지마다 여기에 사는 학생들의 수도 주어진다. 통학버스는 아침에 학교를 출발하여 각 아파트 단지에 있는 학생들을 태우고 학교로 다시 돌아온다. 아파트 단지 A, B, C가 각각 좌표 0, 2, 5에 있고 이 단지에 사는 학생은 각각 1,... Java알고리즘그리디boj통학 버스자바25132513 [BOJ] 2866 문자열 잘라내기 - JAVA Key Idea 입력받은 문자열들의 세로로 문자열들을 넣은 List 를 최초에 한번만 생성 가장 위의 행을 제외한 세로 문자열들에 중복이 없다면 실제로 문자열 하나를 삭제하는 것이 아닌 idx 를 증가시켜 세로 문자열들의 앞에서 하나씩 잘라준다 중복검사는 세로 문자열들을 Map 에 key 로 넣고 value는 개수로 둬서 만약 value 가 2이상이라면 중복이 발생한 것이므로 count 개수... StringbojString [boj] (s3) 9095 1,2,3 더하기 ✅ DP 구성 숫자가 같아도 순서가 다른 것은 다른 조합으로 친다. 따라서 f(n) f(n)을 정수 n 을 1,2,3의 합으로 나타내는 방법의 수라고 하고 몇가지를 구해보면 f(1)=1 f(1)=1 f(2)=2 f(2)=2 f(3)=4 f(3)=4 f(4)=7 f(4)=7 여기서 다음과 같은 규칙을 발견할 수 있다. f(4)=f(3)+f(2)+f(1)=4+2+1=7 f(4)=f(3)+f(2)... bojboj [백준] 1246_온라인판매 python 경래는 닭을 기르는데 올 겨울 달걀 풍년으로 함박 웃음을 짓고 있다. 그리고 이 달걀을 영양란으로 둔갑하여 옥션에 판매하려한다. 경래는 총 N개의 달걀이 있고, 그의 잠재적인 고객은 총 M명이다. 그리고 각각의 i번째 고객은 각자 달걀 하나를 Pi 가격 이하로 살 수 있다고 밝혔다. 경래는 영양란이라 속인 죄책감에 한 고객에게 두 개 이상의 달걀은 팔지 않기로 하였다. 하지만 위의 규칙 하에... 그리디파이썬bojpython백준boj [백준] 2839_설탕배달 python 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그램 봉지와 5킬로그램 봉지가 있다. 상근이는 귀찮기 때문에, 최대한 적은 봉지를 들고 가려고 한다. 예를 들어, 18킬로그램 설탕을 배달해야 할 때, 3킬로그램 봉지 6개를 가져가도 되지만, 5킬로그램 3개와 3... 그리디파이썬bojpython백준boj [백준] 16236_아기상어 python N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 아기 상어는 자신의 크기보다 큰 물고기가 있는 칸은 지나갈 수 없고, 나머지 칸은 모두 지나갈 수 있다. 아기 상어는 자신의 크기보다 작은 물고기만 먹을 수 있다. 따라서, 크기가 같은 물고기는 먹을 수 없지만, 그 물고기가 있는 칸은 지나갈 수 있다. 더 이상 먹을 수 있는 물고기가 공간에 없다면 아기 상어는 엄마 상어에게 도... bojpythonBFS구현백준BFS [ BOJ / Python ] 15683번 감시 이번 문제는 삼성 기출 문제로 백트레킹과 구현을 통해 해결하였다. 처음에 백트레킹을 생각했지만, 브루트포스로도 해결이 가능할 것이라 생각하였고, 브루트포스로 구현을 하였다. cctv의 위치와 종류를 튜플로 하여 cctvs리스트에 담고, 이를 종류의 내림차순으로 정렬한 후에 cctv가 볼 수 있는 구간의 크기를 모두 구하여 이 중 큰 것을 따라가도록 구현하였다. 그러나 17%에서 오답처리 되었... 삼성 기출back trackingpythonbojback tracking [BOJ/C++] 2563 색종이 - 구현 bojImplementationpsImplementation [BOJ] 백준 14503 - 로봇 청소기 👩🏻💻 문제 👩🏻💻 정답 코드 처음에는 d 바꾸는 문장 아래 if문에서 0일 경우 (왼쪽이 청소되지 않은 경우)에서 result을 하나 늘렸는데 출력 예시는 잘 나오는데 자꾸 틀렸다고 해서 머리 싸매고 문제를 다시 잘 읽고 프로세스를 생각해 보니까 result를 일단 늘려야 하는 거구나 싶어서 순서를 바꿨다. (문제에 제일 첫 단계가 1. 현재 위치를 청소한다. 라고 되어 있잖아요...)... 코딩테스트python알고리즘bojboj [BOJ] 백준 15686 - 치킨 배달 👩🏻💻 문제 👩🏻💻 정답 코드 처음에는 치킨 거리가 제일 많은 치킨집을 남기는 걸로 해야 하나 했는데 그렇게 했는데도 틀린 경우가 있을 것 같아서 찾아보다가 itertools의 combinations를 써서 중복 없는 조합을 구해 각 경우 중 min 값을 내면 되는 걸 깨달았다. 라이브러리 활용 잘 할 것... 파이썬 정리 한 번 해야겠다 그래서 프로세스는 집, 치킨집 위치를 일단 chi... 코딩테스트python알고리즘bojboj 백준 16235 나무재테크 pythonsimulationbojalgorithmalgorithm BOJ 13458.시험 감독 입력 1: (시험장 수) 2: (응시자 수) 3: (총감독관이 감시할 수 있는 응시자 수) (부감독관이 감시할 수 있는 응시자 수) 주의사항 1) 최소 감독관의 수의 범위 유의 : int로 충분한가? 구현방식 1) 총감독관 먼저 응시자 수에서 감산 → 출력할 인자 += 1 2) 남은 응시자 수를 부감독관이 감시할 수 있는 응시자 수 C로 나눔 → 출력할 인자 += 위 값 3) 위 값에 C를 ... 삼성SW역량테스트기출백준알규리즘bojboj 백준 3190번 뱀 cpp python 일단 int 2차원 배열로 맵을 만들고 0,0에 뱀을 나타내는 1을 저장했습니다 사과의 위치값을 입력받아서 맵에 저장시켜두고 뱀의 현재 head 좌표값과 tail 좌표값을 변수로 만들어서 관리 해주었습니다. head와 tail 인덱스를 관리할때 주의 하실게 현재 head의 진행방향과 tail의 진행방향이 다를 수 있기 때문에 큐를 사용하여 head가 움직일때마다 큐에 방향... algorithmcppbojpythonsimulationalgorithm 백준 22865 가장 먼 곳 algorithmGraphbojpythondijkstraGraph 백준 14501 퇴사 python java cpp 퇴사날부터 역으로 얻을 수 있는 최대의 수익을 dp 테이블에 저장했습니다... cppbojpythonDPJavaDP BOJ 14501.퇴사 입력 1 : N(날짜) 2 ~ N+1 : T_i(기간) P_i(금액) 주의사항 1) STL에 정의돼있는 함수 이름과 중복되지 않게 변수 선언하기 구현방식: DFS 기반 완전탐색 1) DAY 1 ~ DAY N까지 DFS(배열 접근 0 ~ N-1) 2) DFS 함수 -종료 조건 : 탐색하려는 day가 N이상인가?(배열 접근 고려) -재귀호출 ①탐색하는 day와 해당 상담기간의 합이 N이하일 때,... 삼성SW역량테스트기출알규리즘bojDFS백준DFS [백준] 3474 - 교수가 된 현우(Python) 수학 수의 범위가 (1 <= N <= 십억) 이므로 팩토리얼을 직접 구할 수는 없다. 끝에 0이 몇 개인지 구하는 것은 인수로 10을 몇 개 포함하고 있는지 구하는 것과 같다. 예를 들어 900은 9 x 10 x 10 이므로 끝에 0이 2개이다. 하지만 팩토리얼을 직접 구할 수는 없기 때문에 소인수분해를 이용해야 한다. 10은 5와 2를 인수로 가진다. 따라서 N! 을 구하려면 몇개의 (5 ... 알고리즘bojboj
[ BOJ / Python ] 14890번 경사로 이번 문제는 삼성 기출 문제로, 조건들을 따져가며 구현하는 방식으로 해결하였다. 컬럼을 확인하는 함수 chk_column과 로우를 확인하는 함수 chk_row를 작성하였다. 아래에서 위로 향하며 연속되는 수의 갯수를 DP를 이용하여 dp1에 저장한다. 위에서 아래로 향하며 연속되는 수의 갯수를 DP를 이용하여 dp2에 저장한다. 아래에서 위로 향하며 인접한 값과 비교하며 1 차이가 날 경우에... 삼성 기출pythonbojboj [BOJ] 백준 4673 - 셀프 넘버 👩🏻💻 문제 👩🏻💻 정답 코드 numbers 집합에 1부터 10000까지를 넣고, for문을 돌리면서 각 자릿수와 숫자 자체를 generated 집합에 넣어 준다. 집합을 사용함으로써 중복 없이 처리할 수 있고, 마지막에 numbers-generated으로 차집합을 구해 답을 낼 수 있다. 대신 하나씩 증가하는 순서랬으므로 sorted으로 정렬 필요 👩🏻💻 Remember sorted(... 코딩테스트python알고리즘bojboj 백준 16234번 인구 이동 cpp python 시뮬레이션 구현 문제에 bfs 한스푼 얹은 느낌의 문제네요 로직을 설명해보겠습니다 인구 이동이 없을때까지 반복하기 때문에 while문안에 코드를 작성하고 한번의 반복문마다 인구 이동이 있었는지 검사를 합니다 만약 이번 턴에 한번도 인구이동이 없다면 break문으로 나옵니다 N*N크기의 땅을 이차원 배열에 저장을 해둡니다 동시에 똑같은 크기의 이차원 배열을 0으로 채워서 만... cpppythonbojsimulationBFSBFS [백준]2513 통학 버스(자바) 또, 이 아파트 단지 주민을 위해 도로 위 한 지점에 학교 하나를 신설하였다. 각각의 아파트 단지와 학교의 위치는 도로 위의 좌표로 주어지며, 또 각 아파트 단지마다 여기에 사는 학생들의 수도 주어진다. 통학버스는 아침에 학교를 출발하여 각 아파트 단지에 있는 학생들을 태우고 학교로 다시 돌아온다. 아파트 단지 A, B, C가 각각 좌표 0, 2, 5에 있고 이 단지에 사는 학생은 각각 1,... Java알고리즘그리디boj통학 버스자바25132513 [BOJ] 2866 문자열 잘라내기 - JAVA Key Idea 입력받은 문자열들의 세로로 문자열들을 넣은 List 를 최초에 한번만 생성 가장 위의 행을 제외한 세로 문자열들에 중복이 없다면 실제로 문자열 하나를 삭제하는 것이 아닌 idx 를 증가시켜 세로 문자열들의 앞에서 하나씩 잘라준다 중복검사는 세로 문자열들을 Map 에 key 로 넣고 value는 개수로 둬서 만약 value 가 2이상이라면 중복이 발생한 것이므로 count 개수... StringbojString [boj] (s3) 9095 1,2,3 더하기 ✅ DP 구성 숫자가 같아도 순서가 다른 것은 다른 조합으로 친다. 따라서 f(n) f(n)을 정수 n 을 1,2,3의 합으로 나타내는 방법의 수라고 하고 몇가지를 구해보면 f(1)=1 f(1)=1 f(2)=2 f(2)=2 f(3)=4 f(3)=4 f(4)=7 f(4)=7 여기서 다음과 같은 규칙을 발견할 수 있다. f(4)=f(3)+f(2)+f(1)=4+2+1=7 f(4)=f(3)+f(2)... bojboj [백준] 1246_온라인판매 python 경래는 닭을 기르는데 올 겨울 달걀 풍년으로 함박 웃음을 짓고 있다. 그리고 이 달걀을 영양란으로 둔갑하여 옥션에 판매하려한다. 경래는 총 N개의 달걀이 있고, 그의 잠재적인 고객은 총 M명이다. 그리고 각각의 i번째 고객은 각자 달걀 하나를 Pi 가격 이하로 살 수 있다고 밝혔다. 경래는 영양란이라 속인 죄책감에 한 고객에게 두 개 이상의 달걀은 팔지 않기로 하였다. 하지만 위의 규칙 하에... 그리디파이썬bojpython백준boj [백준] 2839_설탕배달 python 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그램 봉지와 5킬로그램 봉지가 있다. 상근이는 귀찮기 때문에, 최대한 적은 봉지를 들고 가려고 한다. 예를 들어, 18킬로그램 설탕을 배달해야 할 때, 3킬로그램 봉지 6개를 가져가도 되지만, 5킬로그램 3개와 3... 그리디파이썬bojpython백준boj [백준] 16236_아기상어 python N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 아기 상어는 자신의 크기보다 큰 물고기가 있는 칸은 지나갈 수 없고, 나머지 칸은 모두 지나갈 수 있다. 아기 상어는 자신의 크기보다 작은 물고기만 먹을 수 있다. 따라서, 크기가 같은 물고기는 먹을 수 없지만, 그 물고기가 있는 칸은 지나갈 수 있다. 더 이상 먹을 수 있는 물고기가 공간에 없다면 아기 상어는 엄마 상어에게 도... bojpythonBFS구현백준BFS [ BOJ / Python ] 15683번 감시 이번 문제는 삼성 기출 문제로 백트레킹과 구현을 통해 해결하였다. 처음에 백트레킹을 생각했지만, 브루트포스로도 해결이 가능할 것이라 생각하였고, 브루트포스로 구현을 하였다. cctv의 위치와 종류를 튜플로 하여 cctvs리스트에 담고, 이를 종류의 내림차순으로 정렬한 후에 cctv가 볼 수 있는 구간의 크기를 모두 구하여 이 중 큰 것을 따라가도록 구현하였다. 그러나 17%에서 오답처리 되었... 삼성 기출back trackingpythonbojback tracking [BOJ/C++] 2563 색종이 - 구현 bojImplementationpsImplementation [BOJ] 백준 14503 - 로봇 청소기 👩🏻💻 문제 👩🏻💻 정답 코드 처음에는 d 바꾸는 문장 아래 if문에서 0일 경우 (왼쪽이 청소되지 않은 경우)에서 result을 하나 늘렸는데 출력 예시는 잘 나오는데 자꾸 틀렸다고 해서 머리 싸매고 문제를 다시 잘 읽고 프로세스를 생각해 보니까 result를 일단 늘려야 하는 거구나 싶어서 순서를 바꿨다. (문제에 제일 첫 단계가 1. 현재 위치를 청소한다. 라고 되어 있잖아요...)... 코딩테스트python알고리즘bojboj [BOJ] 백준 15686 - 치킨 배달 👩🏻💻 문제 👩🏻💻 정답 코드 처음에는 치킨 거리가 제일 많은 치킨집을 남기는 걸로 해야 하나 했는데 그렇게 했는데도 틀린 경우가 있을 것 같아서 찾아보다가 itertools의 combinations를 써서 중복 없는 조합을 구해 각 경우 중 min 값을 내면 되는 걸 깨달았다. 라이브러리 활용 잘 할 것... 파이썬 정리 한 번 해야겠다 그래서 프로세스는 집, 치킨집 위치를 일단 chi... 코딩테스트python알고리즘bojboj 백준 16235 나무재테크 pythonsimulationbojalgorithmalgorithm BOJ 13458.시험 감독 입력 1: (시험장 수) 2: (응시자 수) 3: (총감독관이 감시할 수 있는 응시자 수) (부감독관이 감시할 수 있는 응시자 수) 주의사항 1) 최소 감독관의 수의 범위 유의 : int로 충분한가? 구현방식 1) 총감독관 먼저 응시자 수에서 감산 → 출력할 인자 += 1 2) 남은 응시자 수를 부감독관이 감시할 수 있는 응시자 수 C로 나눔 → 출력할 인자 += 위 값 3) 위 값에 C를 ... 삼성SW역량테스트기출백준알규리즘bojboj 백준 3190번 뱀 cpp python 일단 int 2차원 배열로 맵을 만들고 0,0에 뱀을 나타내는 1을 저장했습니다 사과의 위치값을 입력받아서 맵에 저장시켜두고 뱀의 현재 head 좌표값과 tail 좌표값을 변수로 만들어서 관리 해주었습니다. head와 tail 인덱스를 관리할때 주의 하실게 현재 head의 진행방향과 tail의 진행방향이 다를 수 있기 때문에 큐를 사용하여 head가 움직일때마다 큐에 방향... algorithmcppbojpythonsimulationalgorithm 백준 22865 가장 먼 곳 algorithmGraphbojpythondijkstraGraph 백준 14501 퇴사 python java cpp 퇴사날부터 역으로 얻을 수 있는 최대의 수익을 dp 테이블에 저장했습니다... cppbojpythonDPJavaDP BOJ 14501.퇴사 입력 1 : N(날짜) 2 ~ N+1 : T_i(기간) P_i(금액) 주의사항 1) STL에 정의돼있는 함수 이름과 중복되지 않게 변수 선언하기 구현방식: DFS 기반 완전탐색 1) DAY 1 ~ DAY N까지 DFS(배열 접근 0 ~ N-1) 2) DFS 함수 -종료 조건 : 탐색하려는 day가 N이상인가?(배열 접근 고려) -재귀호출 ①탐색하는 day와 해당 상담기간의 합이 N이하일 때,... 삼성SW역량테스트기출알규리즘bojDFS백준DFS [백준] 3474 - 교수가 된 현우(Python) 수학 수의 범위가 (1 <= N <= 십억) 이므로 팩토리얼을 직접 구할 수는 없다. 끝에 0이 몇 개인지 구하는 것은 인수로 10을 몇 개 포함하고 있는지 구하는 것과 같다. 예를 들어 900은 9 x 10 x 10 이므로 끝에 0이 2개이다. 하지만 팩토리얼을 직접 구할 수는 없기 때문에 소인수분해를 이용해야 한다. 10은 5와 2를 인수로 가진다. 따라서 N! 을 구하려면 몇개의 (5 ... 알고리즘bojboj