이카's
반응형
article thumbnail
알고리즘을 잘 풀기 위한 팁 - 구현편(feat. 유튜버 큰돌님)
알고리즘 문제풀이 2023. 5. 23. 21:31

알고리즘 어떻게 풀까? 구현 디버깅 (굳이 메모장 필요 X) 문제 도식화 쉬움2 보통1 꾸준히 타자속도 자주 나오는 로직은 외우자 실력이 조금 있다? ▶️▶️▶️ BOJ 실버 2문제, 골드 1문제 그렇지 않다? ▶️▶️▶️ BOJ 브론즈 2문제, 실버 1문제 찾는 방법 solved.ac 들어가서 검색 ▶️▶️▶️ ex) #implementation *s (구현 실버 문제) 예시 백준 14502 - 연구소 벽 3개 새운다. 1-1. 모든 경우의 수 체크 - 완전 탐색 바이러스 퍼트린다 안전 영역 count하는 것 필요 DFS 구현 처음부터 IDE에서 풀되, 자동완성 쓰지 말고, 직접 치는 연습을 해야한다. 구현문제의 많은 경우는 x1, y1, x2, y2로 네방향으로 벽을 치면서 구현하는 문제가 많다. 꼭..

article thumbnail
제1회 코딩올나잇
개인공간 2023. 5. 4. 05:47

제 1회 코딩올나잇 시작하기 앞서 이렇게 하는 것은 미련한 행동이라고 생각한다. 잠은 정말 중요하기 때문 유튜브 링크 그럼에도 불구하고 코딩올나잇 왜해? 사실 해커톤에서 감명받아 시작해본 것이다. 대신 엄청 큰 결과물을 만드는 것은 아니다. 24시간 동안 코딩을 하는 열정과 에너지를 쏟자는 마인드에서 오는 취지라고 좋게 포장할 수 있다. 사실 할게 너무 밀렸다는 것... 24시간동안은 아니다. 6시 정도에 끝내볼 생각이다. 목표 중요도에 따라 순서 작성 📓 알고리즘 스터디 문제 pull 백준 2문제 우테코 이력서 작성 week 과제 제출 토이프로젝트 제출 블로그 작성 강의 듣기 시작 23시 🕝 스터디 알고리즘 문제 BOJ 1620🐕 나는야 포켓몬 마스터 이다솜 백준 풀이 HashMap HashMap 포켓..

[Node.js] 백준 #10828 스택 (실패 : 시간초과)
알고리즘 문제풀이/BOJ 2021. 7. 20. 23:51

let fs = require('fs'); let input = fs.readFileSync('/dev/stdin').toString().split('\n'); let stackCount = Number(input[0]); function solution() { let stack = []; let result = 0; function PUSH (num) { return stack.concat(num); }; function TOP() { if (stack.length === 0) { return -1; } else { result = stack.slice(-1, ); } return result; }; function SIZE () { return stack.length; }; function EMPTY..

[JavaScript] 스택 구현

class Stack { constructor () { this.stack = []; this.size = 0; } push(arg) { this.size++; this.stack = this.stack.concat(arg); } size() { return this.size; } pop() { if (this.stack.length === 0) { return -1 } const popNum = this.stack[this.size - 1]; this.stack = this.stack.slice(0, -1); this.size-- return popNum; } empty() { if (this.size === 0) { return 1; } else { return 0; } } top() { if (th..

article thumbnail
Baekjoon #2292번 벌집 [Python]
알고리즘 문제풀이/BOJ 2020. 10. 6. 19:58

www.acmicpc.net/problem/2292 2292번: 벌집 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌�� www.acmicpc.net 문재해석 처음 보는순간 수열이라는 것을 쉽게 발견 할 수 있다. 솔직히 백준 수학 알고리즘 수학 1 파트를 풀고 있지만 규칙은 어렵지않게 발견했지만 구현이 쉽지가 않다. 이번에도 조금 힘들었다. 조건1) room은 초기방 숫자가+6씩 수열로 증가 할때마다 room +1 씩 해주면 된다. 코드를 풀어보자면 처음 숫자가 1번 일때는 그대로 출력 // #1번째 방 초기값을 7로 잡아서 구하고자하는 값이, 예를들어 6일때 ..

article thumbnail
Baekjoon #2839번 설탕배달 [Python]
알고리즘 문제풀이/BOJ 2020. 10. 6. 18:02

www.acmicpc.net/problem/2839 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그�� www.acmicpc.net 문재해석 정말 애먹었다. 처음 해석은 쉬운데 이걸 구현하기가 생각보다 까다롭다. 다들 3의 배수 5의 배수로 생각을 하다가 생각해보면 의외로 그렇지 않는 경우도 있다. (예를들어 11의배수도 있고...) 아무튼 고민끝에 푸는 방법은 간단했다. 조건1) 5의 배수일때 무조건 5를 빼준다. 그리고 카운터 + 1 조건2) 5의 배수가 아닌거는 무조건 3을 빼준다. 그리고 카운터 + 1 이렇게 돌리면 11, 16과 같은 경우..

article thumbnail
baekjoon #1712번 손익분기점 [Python]
알고리즘 문제풀이/BOJ 2020. 10. 6. 15:57

www.acmicpc.net/problem/1712 1712번: 손익분기점 월드전자는 노트북을 제조하고 판매하는 회사이다. 노트북 판매 대수에 상관없이 매년 임대료, 재산세, 보험료, 급여 등 A만원의 고정 비용이 들며, 한 대의 노트북을 생산하는 데에는 재료비와 www.acmicpc.net 문재해석 처음에는 for 문으로 곱하기를 해서 결과를 구하려고 했다. 하지만 몇번을 돌릴지 조건이 나와있지않았고, 더 까다롭다는걸 알았다. 그래서 고민끝에 알아낸 방법이 나누는 것이었다. (하지만 이미 많은 분들은 이렇게 푸셧다..) 뭔가 대단한걸 발견한줄 알앗는데 코드까지 똑같앗다. 조건1) b가 c보다 크거나 같으면 손익분기점이 절대 없다. 왜냐하면 a 를 더하기 때문이다... 무조건 차익에서 이득이 나야 수익이..

article thumbnail
baekjoon #1316번 그룹단어체커 [Python]
알고리즘 문제풀이/BOJ 2020. 10. 6. 14:45

www.acmicpc.net/problem/1316 1316번: 그룹 단어 체커 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때� www.acmicpc.net 문제해석 문제 해석은 어렵지 않았다. 그룹 단어를 카운트 해야 되는데, 조건 1) 서로 다른 단어 일 경우 카운트 +1 조건 2) 같은단어가 연속으로 나오지만, 뒤에 연속으로 나왓던 단어가 나오지 않을 경우 카운트 +1 문제 해석은 쉬운데 구현이 어려웠다. 두문자를 비교하는 조건을 체크하는건 쉬웠는데, 그 후 카운터를 어떻게 올려야 할지 몰랏다. 여러 오픈소스를 보고 횟수만큼 ..

article thumbnail
Baekjoon #2941번 크로아티아 알파벳 [Python]
알고리즘 문제풀이/BOJ 2020. 10. 6. 01:25

www.acmicpc.net/problem/2941 2941번: 크로아티아 알파벳 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= www.acmicpc.net 문재 해석) 처음에는 이게 뭔말인가 싶었다. 하지만 출력 글을 읽어보니 크로아티아 문자열로 변환 후 그 문자열의 인덱스를 구하면 되는 것이었다. 이렇게 해석하면 간단하게 풀 수 있다. 1 2 3 4 5 6 7 str_list = ['c=', 'c-', 'dz=', 'd-', 'lj', 'nj', 's=', 'z='] s = input() for i in str_list: s..

article thumbnail
Baekjoon #5622번 다이얼 Python
알고리즘 문제풀이/BOJ 2020. 10. 5. 22:44

www.acmicpc.net/problem/5622 5622번: 다이얼 첫째 줄에 알파벳 대문자로 이루어진 단어가 주어진다. 단어는 2글자~15글자로 이루어져 있다. www.acmicpc.net 문재해석) 어렵지 않은문제다. 쉽게 생각하면 정말 쉽게 풀 수있다. 물론 이보다 쉽게 풀수 있는 방법이 있겠지만, 직관적으로 풀어봤다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 s = input().upper() num_sum = 0 for i in s: if i in "ABC": num_sum += 3 elif i in "DEF": num_sum += 4 elif i in "GHI": num_sum += 5 elif i in "JKL": n..

article thumbnail
Baekjoon #2908번 상수 Python
알고리즘 문제풀이/BOJ 2020. 10. 5. 16:37

www.acmicpc.net/problem/2908 2908번: 상수 상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 � www.acmicpc.net 문재 해석 두 문자열이 주워졌을때, 문자열을 거꾸로 읽어서 더 큰수를 찾는 문제이다. 처음에는 조금 헤맸다. 하지만 reversed()를 써서 마지막 번호를 대입하는 형식으로 풀어나갔다. 1 2 3 4 5 6 7 8 9 10 11 12 13 s, r = list(map(str, input().split())) temp1 = '' temp2 = '' for j in reversed(range(len(s))): temp1 ..

article thumbnail
Baekjoon #1152번 단어의갯수 Python
알고리즘 문제풀이/BOJ 2020. 10. 5. 15:24

1 2 s = list(map(str,input().split())) print(len(s)) cs 너무 쉬워서 건너 뛴다.

반응형