Algorithm14 코드 최적화란? 요즘 c로 돌아가면서, 코드 효율화에 대한 고민을 하게 되었다. 그때그때 찾아보다가 잊을거 같아서 한데 모아 놓으려 한다. 언제나 그렇듯 드럽게 진도가 안나간다 요약 1. 나눗셈을 줄이자 2. 비트 연산을 활용하자 3. 포인터를 활용하자 4. 인라인 함수를 사용하자 5. 함수 호출을 줄이자 1. 나눗셈을 줄이자 나눗셈은 가장 시간이 오래 걸리는 연산이다. 아래와 같은 경우 매번 나눗셈을 하는것 보다 if문을 활용하여 0으로 돌려주는것이 좋다. 4. inline 함수를 사용하자 inline 함수: 함수 호출 시 별도로 분리된 위치의 레이블로 점프하여 실행되는 일반 함수와는 달리 컴파일러가 함수를 복제 하여 넣어준다. C99 부터 생겼단다. 라떼는 안배웠던 신기능이다. 즉, 컴파일러가 보기에 이 코드는 #i.. 2021. 10. 30. 기업투자(정올 1825,백준2662) 문제링크 http://jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=1098&sca=99&sfl=wr_hit&stx=1825 JUNGOL www.jungol.co.kr https://www.acmicpc.net/problem/2662 2662번: 기업투자 어떤 투자가가 여러 기업들에게 돈을 투자해서 최대의 이익을 얻고자 한다. 단, 투자는 만원 단위로 할 수 있으며 각 기업은 많이 투자할수록 많은 이익을 투자가에게 돌려준다. 돈을 투자하지 www.acmicpc.net 코드 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.Inpu.. 2021. 7. 1. 양팔 저울 (정올 1352,백준 2629) 문제 링크 http://jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=627&sca=99&sfl=wr_hit&stx=1352 JUNGOL www.jungol.co.kr https://www.acmicpc.net/problem/2629 2629번: 양팔저울 첫째 줄에는 추의 개수가 자연수로 주어진다. 추의 개수는 30 이하이다. 둘째 줄에는 추의 무게들이 자연수로 가벼운 것부터 차례로 주어진다. 같은 무게의 추가 여러 개 있을 수도 있다. 추의 무 www.acmicpc.net 풀이 dp에 현재 가지고 있는 추로 잴수있는 모든 경우를 표시해 놓는다. 코드 import java.io.BufferedReader; import java.io.BufferedWriter; im.. 2021. 7. 1. 전기줄 (정올 1257, 백준 2568) 문제링크 http://jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=540&sca=99&sfl=wr_hit&stx=1257 JUNGOL www.jungol.co.kr https://www.acmicpc.net/problem/2568 2568번: 전깃줄 - 2 첫째 줄에는 두 전봇대 사이의 전깃줄의 개수가 주어진다. 전깃줄의 개수는 100,000 이하의 자연수이다. 둘째 줄부터 한 줄에 하나씩 전깃줄이 A전봇대와 연결되는 위치의 번호와 B전봇대와 연결 www.acmicpc.net 풀이 이분탐색을 쓰지 않으면 시간초과 발생한다. 같은 숫자가 있으면 양수, 없으면 음수로 반환된다. 음수 idx는 -1 부터 시작 0 1 2 3 1 2 3 4 5 7 8 9 10 -1 -2 .. 2021. 7. 1. 이전 1 2 3 4 다음 반응형