알고리즘 4

[BOJ 11068: 회문인 수] 수학 | C 언어

https://www.acmicpc.net/problem/11068 11068번: 회문인 수 어떤 수를 왼쪽부터 읽어도, 오른쪽부터 읽어도 같을 때 이 수를 회문인 수라고 한다. 예를 들어, 747은 회문인 수이다. 255도 회문인 수인데, 16진수로 표현하면 FF이기 때문이다. 양의 정수를 입력 www.acmicpc.net 회문 - 펠린드롬 - 거꾸로 읽어도 똑같은 것 입력 받은 숫자를 2진법 ~ 64진법으로 표현했을 때 회문인 경우가 하나라도 있으면 1, 없으면 0을 출력하는 문제이다. 진법 - 10진법 -> B진법으로 변환하기 : (숫자를 B로 나눈 나머지 값을 맨 뒤부터 놓고, 숫자를 B로 나눈다.) 반복 (개떡같은 설명 ...) 여기서 생각할 것은 숫자를 완전히 B진법으로 바꿀 필요가 없다는 것..

Algorithms 2023.10.13

[BOJ 9028: Iris] 구현, 문자열 | C언어

https://www.acmicpc.net/problem/9028 9028번: Iris (비밀번호) 전 세계에 걸쳐 첩보 비밀 조직망을 구축하고 있는 아이리스의 정체는 베일에 싸여 있다. 그러나 국가간 분쟁 조장이나 무기 매매 등의 방법으로 거액의 자금을 운용하고 있음이 알려져 있다. www.acmicpc.net 문자열에 특정 word가 몇 번 등장하는지, 어디에 등장하는지를 찾는 문제이다. word - 중복 문자 X - 문자들이 연속으로 등장할 필요 없음 - word의 등장위치는 txt상에서 마지막 문자의 위치로 판단함 - 문자의 위치는 0이 아닌 1부터 시작한다 - 대소문자 구별하지 않는다 sol1) 스택 이용 (실패염) 처음에는 스택에 단어를 넣으면 되겠다고 생각했다. txt를 앞에서부터 순회하면서..

Algorithms 2023.10.13

[Greedy Algorithm] 그리디 알고리즘 - 정당성 증명은 필수

오늘은 욕심쟁이 알고리즘에 대해 알아보자~ Greedy Algorithm 복잡한 문제를 쪼개서 해결한다. 쪼개진 조각들이 다 최선의 답을 가지면 전체도 최적의 해를 가지지 않을까? 현재 상황에서 가장 좋아 보이는 것만을 선택하는 알고리즘 눈앞의 이익만 우선 추구하는 알고리즘의 설계 패러다임 매 단계마다 최선의 방법만 선택하면 되기 때문에 탐색 범위가 줄어든다! 주의점 그리디 알고리즘은 각 단계에서 가장 좋은 방법만 선택하면 전체에 대한 최적해를 가진다 전제하에 정당성을 가지는 것이다. 그렇기 때문에 그리디 알고리즘을 떠올렸을 땐, 정당성을 증명하는 것이 필수!!!! 만약 최적해가 보장되지 않는 경우 그리디 알고리즘을 사용하면 망한다. 그리고 그리디 알고리즘이 최적해를 보장하는 경우는 많지 않다. 함부로 ..

Algorithms 2023.07.15

알고리즘 문제 풀 때 Runtime Error 발생시

알고리즘 문제를 풀다 보면 간혹 런타임 에러를 마주하게 된다! 런타임 에러는 프로그램 실행 중 발생한 오류이다. 프로그램 실행 중 잘못된 데이터를 가지게 되어 잘못된 처리를 진행하려 할 때 발생한다. 발생한 에러에 대해 프로그램 내에서 에러 처리를 하지 않은 경우에는 프로그램이 종료되기 때문에 치명적인 오류이다. 어떤 이유로 런타임 에러가 발생했는지 알려주는 경우도 있지만 원인을 알 수 없을 때가 많은데, 에러를 해결하려면 우선 원인을 알아야 한다. 아래 내용을 하나씩 잘 살펴보고 문제 원인을 찾아내자! 알고리즘 문제를 풀 때 Runtime Error가 발생하는 원인은 주로 다음과 같다.물론 전부는 아니다.(주 원인들은 boj/djm03178님의 글을 참고했습니다) 1. 배열에 할당된 크기를 넘어서 접근..

Algorithms 2023.07.15