전체 글 (169) 썸네일형 리스트형 [백준] 22233 가희와 키워드 / 구현 / Python 실3 2024. 12. 11. 21:06 "시간초과의 늪"https://www.acmicpc.net/problem/22233예전 포스팅에서도 쓴 적이 있는데파이썬에서 시간초과가 뜨면 input 대신 sys.stdin.readline을 쓰라는 교훈을 얻었던 적이 있다. 문제는 정말 간단하다 메모장에 적은 키워드를 set으로 입력받고,블로그에 글을 m개 적을 때마다콤마를 구분으로 입력을 분리해서 임시 set을 만든 후메모장 set에서 현재 글에 입력한 단어 임시 set을 빼준다그리고 현재 메모장의 길이를 출력한다 python의 set을 잘 쓰면 된다그런데 입력 받는 부분이 잘 구현되어야 하는 것 같다그것 때문에 시간초과가 너무 많이 발생해서, 결국 다른 블로그를 봤는데코드 구조는 똑같은데 입력 부분만 달랐다 import sysinput = sys... [백준] 17266 어두운 굴다리 / 이진탐색 / Python 실4 2024. 12. 11. 20:16 오랜만입니다. 아직 학부생이라 기말고사 공부하다 늦었음 https://www.acmicpc.net/problem/17266 가로등 높이만큼 왼쪽 오른쪽으로 빛이 퍼지는 데, 0~n 구간을 빠짐없이 빛으로 덮을 수 있는 최소 가로등 높이를 구해야 함 while문으로 이진탐색을 해야 풀리는 문제더라구요 left, right를 두고 역전되는 시점에 while문을 종료합니다 높이 h를 left right의 중간값으로 잡고,현재 높이에서 커버 가능한 구간의 끝점을 잡아서 비교합니다 가로등 위치 for문을 돌면서현재 커버 가능한 구간의 끝점을 가로등 위치+가로등 높이 h로 업데이트합니다만약 커버 가능한 구간의 끝점이 가로등 위치 - 가로등 높이 h보다 작은 경우,이전 가로등 커버 범위와 현재 가로등 커버 범위 사이.. Lec16.Optimization (1) - 14주차 2강 2024. 12. 10. 23:32 12월 4일, 14주차 2강* 개인 공부를 위해 정리한 것입니다. 정확한 내용은 꼭 본인이 공부하는 교재를 참고하시기 바랍니다.middle-end optimizer: 중간표현을 입력받아 효율적인 코드로 변환하는 역할.코드 의미를 보존하면서도 불필요한 중간 변수나 연산을 제거해 최적화된 결과 생성코드 최적화 방법공통 부분식 제거표현식 E가 프로그램 내에서 한 번 계산된 이후, 해당 변수 값이 변경되지 않았다면 E는 공통 부분식으로 간주동일한 계산 반복할 필요 없이, 이전 계산 결과 재사용해 프로그램 최적화copy propagationu=v와 같은 복사문 이후, u가 재정의 되지 않는 한 u 대신 v를 사용하는 최적화 기법중간 변수 없이 값 바로 사용하는 방식, 코드 간결성과 실행효율 높임불필요한 변수 제거.. Lec15.lR Translation (2) - 14주차 2강 2024. 12. 10. 23:09 부제: Control-Flow Graph 14주차 2강. 2024.12.04. three address code - 각 식이 최대 3개의 피연산자를 갖도록 함. 단순한 연산 단위로 분해해 분석과 최적화 용이하게.global optimization을 효과적으로 수행하기 위해 3주소 코드를 CFG로 변환함. CFG는 프로그램 제어 흐름을 그래프로 표현한 구조. 최적화와 정적 분석을 위해 사용.Node는 Basic Block을 나타냄. 분기 없이 연속적으로 실행되는 명령어 집합Edge: Basic Block 간의 Control Flow. 조건문, 반복문의 흐름에 따라 블록이 연결됨.basic block은 분기가 없는 명령어의 최대 연속 집합. 중간에서 흐름이 끊기지 않고 처음부터 끝까지 순차적 실행.basic.. Lec14.IR Translation (1) - 14주차 1강 2024. 12. 10. 22:34 부제: Automatic Translation12월 2일, 14주차 1강* 개인 공부를 위해 정리한 것입니다. 정확한 내용은 꼭 본인이 공부하는 교재를 참고하시기 바랍니다.컴파일러 디자인의 복잡도를 줄이기 위해 IR을 사용한다x=0, t1=0x에 t1 값을 할당t3에 x값을 할당t4에 1을 할당t2에 t3과 t4의 합을 할당t2를 write한 후 정지초기화, sum=0, i=02:SKIP: 반복문 시작조건 검사t4에 i값 복사t5에 10 복사t3에 t4조건이 거짓이면 3으로 점프반복문 본문sum=sum+i를 계산해 sum에 저장i++ 연산을 수행반복문 시작으로 돌아가기 위해 goto23:SKIP: 반복문 종료출력 및 종료sum값을 출력하고 HALT 소스 언어과 타겟언어 사이의 자동변환 절차를 정의S: 변.. Lec13.Semantic Analysis (4) - 13주차 1강/2강 2024. 12. 9. 23:24 11월 25일, 27일 / 13주차 1강, 2강* 개인 공부를 위해 정리한 것입니다. 정확한 내용은 꼭 본인이 공부하는 교재를 참고하시기 바랍니다.고정점 계산반복문처럼 state의 변화가 있는 명령문에서 stable state를 찾기 위해 고정점 계산을 함고정점은 항상 종료되는가? 종료되기 위해서는 추상 도메인의 lattice가 finite height를 가져야 함그러나 실제 도메인은 infinite height를 가져, 고정점 계산이 끝나지 않을 수 있음Widening 연산자 - 고정점 계산이 종료하지 않는 문제를 해결하기 위해 도입상태 병합(join) 과정에서 빠르게 상위 상태로 approximation하여 반복 과정을 종료하도록 함무한 높이를 가진 lattice에서도 고정점 계산의 종료를 보장정확성.. Lec12.Semantic Analysis (3) - 13주차 1강 2024. 12. 9. 22:06 11월 25일 13주차 1강* 개인 공부를 위해 정리한 것입니다. 정확한 내용은 꼭 본인이 공부하는 교재를 참고하시기 바랍니다.대충 Lec 11에서 계속 배우던 연산, 불리안, 코맨드 구현의 코드를 깃허브에 올려놓으셨단 뜻아래 렉쳐 슬라이드에서는 코드 중 일부를 가져와서 설명함 module Sign = struct type t = Top | Bot | Pos | Neg | Zero | NonPos | NonNeg | NonZero let porder : t -> t -> bool = fun s1 s2 -> match s1, s2 with | _, _ when s1 = s2 -> true (* 동일한 값은 포함 관계 성립 *) | Bot, _ -> true (* NONE은.. [Lec.Halting] Undecidability, Halting Problem - 11주차 2강 2024. 12. 9. 18:29 11월 13일 - 11주차 2강정지 문제를 대학 전공 수업에서 한 번도 다루지 않았다는 사실에 충격을 받은 교수님...급기야 추가 렉쳐를 기획하게 되는데....* 개인 공부를 위해 정리한 것입니다. 정확한 내용은 꼭 본인이 공부하는 교재를 참고하시기 바랍니다. 예, 아니오로 대답할 수 있는 문제유한 오토마타가 문자열을 인식하는가? CFG가 ambiguous 한가?결정 가능 문제: 모든 입력에 대한 올바른 답(예/아니오)를 유한 시간 내에 출력 가능한 알고리즘 존재결정 불가능 문제: 모든 입력에 대해 항상 올바른 답을 출력할 수 있는 알고리즘을 만드는 것이 불가능한 문제TSP 외판원 문제 - 다른 문제로부터 결정 문제로 변가능최적화 문제: 모든 도시를 정확히 한 번씩 방문하고 시작 지점으로 돌아오는 최단.. 이전 1 ··· 9 10 11 12 13 14 15 ··· 22 다음