본문 바로가기

전체 글

(172)
[프로그래머스] 타겟넘버 - BFS/DFS (개발자 강화/코딩 테스트) 2024. 10. 24. 23:35 알고리즘 고득점 키트 BFS/DFS lv2 타겟넘버 숫자 배열이 주어지고, 목표 값이 있음각 숫자를 더하거나 빼서 목표 값을 만들고, 총 목표 값을 몇 가지로 만들 수 있는지 return하면 됨 혼자 못풀었음풀이 참고함 BFS 풀이 모든 연산을 저장하는 leaves 배열이 존재for문을 돌며 각 숫자를 탐색    leaves 안에 있는 모든 숫자들에 대해서, 현재 숫자를 더하거나 뺀 값을 임시 배열에 저장함    leaves 배열 값을 임시 배열값으로 치환함   #어차피 숫자 순서를 바꾸거나 하는 일은 없으니까   #순서대로 각 숫자를 더하거나 뺐을 때 경우를 다 저장해서 나중에 target 값인지만 확인하면 됨 for문 돌며 leaves안에 있는 값 살펴봄. target값이면 answer +1 def ..
Lec06. Syntax Analysis(2) - 7주차 1강/2강 (전공/프로그래밍 언어 및 컴파일러) 2024. 10. 24. 14:03 10월 14일 7주차 1강 + 10월 16일 7주차 2강* 개인 공부용으로 정리했습니다! 정확한 내용은 본인이 공부하는 자료를 참고해주세요. 오늘의 대주제: Top-Down Parsing 1. Top-Down ParsingTop-Down Parsing의 정의주어진 입력 문자열에 대해 parse tree를 구축하는 과정parse tree의 root에서 시작해서 tree를 preorder로 순회(root-왼-오)하며 input 문자열과 일치하는 leaf까지 진행input  문자열에 대한 leftmost derivation을 찾는 과정과 동일하게 볼 수 있음모든 문법이 top-down parsing 알고리즘으로 분석될 수 있는 건 아님분석할 수 있게 grammar를 재작성해야 함Eliminating Ambig..
[프로그래머스] 조이스틱 - Greedy (개발자 강화/코딩 테스트) 2024. 10. 23. 22:59 프로그래머스 고득점키트 그리디 조이스틱 레벨2 완성해야 하는 문자열이 주어지고, 맨 처음에는 문자열의 길이만큼 A가 존재함상하로 움직이면 현재 알파벳의 이전 또는 이후 알파벳이 나옴, 좌우로 움직이면 각 문자 사이 커서 이동일단 상하로 움직여서 알파벳을 바꾸는 건 간단함파이썬 같은 경우에는 ord(알파벳)하면 아스키값을 알 수 있음그래서 ord('A') 또는 ord('Z')값과 각 문자열의 값을 뺄셈해서 절대값을 구하고, 둘 중 작은 값을 고름대신 주의해야될 것은 기본 값이 A이기 때문에 Z에서 시작하려면 A->Z로 변환하는 단계가 필요해서 1 더함그래서 A에서 아래로 움직여서 해당 알파벳으로 가는게 나은지?아니면 A에서 위로 움직여서 Z로 바꾼 후, 계속 위로 움직여서 해당 알파벳으로 가는게 나은지?그..