BaekJoon 15

[백준 알고리즘] 1012번 - 유기농 배추 (DFS 알고리즘)

1. 문제 및 예시 실행결과 이 글의 소제목이 DFS 알고리즘이지만, 나는 DFS알고리즘을 모르는 상태이다...... 그냥 내가 생각한 방식대로 풀었더니 그것이 DFS 알고리즘이었던 것이다. 다른점이 있다면 나는 자료구조를 queue를 사용하였지만 DFS 알고리즘은 stack을 사용한다고 한다. 이 글은 DFS알고리즘의 설명보다는 1012번을 푸는 방법에 대한 글이라고 생각해줬으면 좋겠다. 출처: www.acmicpc.net/problem/1012 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net 중요한 점은 이놈의 지렁이..

[백준 알고리즘] 1929번 - 소수 구하기 (시간 초과, 소수 알고리즘)

1. 문제, 실행결과 예시 백준 알고리즘 카테고리에 글을 쓰는게 정말 오랜만인 것처럼 느껴진다. 아마 실제로도 오랜만일 것이다 ㅎㅎ. 이 문제에 대한 풀이를 올리는 이유는 시간 초과라는 새로운 문제를 만났기 때문이다. 실제로 소수를 구하는 문제는 정말 많이 풀어봤지만, 이번 문제의 최대 입력값은 100000으로 기존에 사용하던 방법( 1 ~ N 까지의 모든 수를 비교하는 방법 )을 사용하면 시간초과가 날 수 밖에 없었다.( 심지어 숫자 하나당 줄바꿈을 해야하는 문제이다. ) 때문에 소수를 찾는 다른 방법을 사용해야 했다. 방법은 아래에서 자세히 설명할 것이다. 다음은 문제와 실행결과 예시 이다. 출처: https://www.acmicpc.net/problem/1978 1978번: 소수 찾기 첫 줄에 수의..

[백준 알고리즘] 2292번 - 벌집

1. 문제 및 예시 실행결과 수학 카테고리에서 문제를 풀기 전 문자열 카테고리와는 다른 종류의 겁이 들었던 기억이 난다. 코딩을 잘 한다는 것이 아직도 뭔지 모르겠다. 문법을 잘 알고, 에러를 만들지 않는 사람도 있고 수학적 기교로 코드수를 줄이거나 알고리즘을 잘 설계하는 사람이 있을 것이다. 전자와 후자 전부 대단하지만, 나는 이 모든 부류를 공부할 때 겁을 먹는 것 같다. 언젠가는 이런 겁도 안먹기를 바란다. 이번 문제는 규칙을 파악하는 것이 매우 중요한 문제이다.(모든 코딩문제가 그런 것 같지만......) 실제로 나는 이 문제를 위해 그림도 그렸다 ㅠㅠ 다음은 문제와 예시 실행결과이다. 출처: https://www.acmicpc.net/problem/2292 2292번: 벌집 위의 그림과 같이 육..

[C언어, Python] 논리 연산자와 자주 발생하는 실수!

1. 문제 이 문제는 백준 알고리즘 2941번과 관련된 문제이다. 문제를 보면 알겠지만, 나는 이 문제를 논리 연산자와 반복문 만으로 해결하고자 하였다. 혹시 문제가 궁금하신 분들은 아래의 링크로 들어가면 볼 수 있다. 문제: https://apape1225.tistory.com/30[백준 알고리즘] 2941번 - 크로아티아 알파벳1. 문제, 예시 시행결과 이번 문제는 나름 시간이 걸린 문제이다. 문법으로 틀린 문제가 아니라, 논리로 우류가 났기 때문에...... 사실 이런 문제도많이 틀려가면서 스스로 부족한 점을 알아가��apape1225.tistory.com 보면 알겠지만 논리 연산자에 괄호도 있고...... && 연산자를 맨 뒤에다 쓰고...... 복잡해 보이기는 하지만, 나름 시행착오를 통해 작성..

[백준 알고리즘] 2941번 - 크로아티아 알파벳

1. 문제, 예시 시행결과 이번 문제는 나름 시간이 걸린 문제이다. 문법으로 틀린 문제가 아니라, 논리로 우류가 났기 때문에...... 사실 이런 문제도많이 틀려가면서 스스로 부족한 점을 알아가려는 것에 목적이 있지만, 찾는데 꽤 오랜 시간이 걸렸다...... 결론 부터 말하면 논리 연산자 때문인데, 이 부분을 자세히 설명하는 새로운 글을 쓸 계획이다. 이 글에서는 문제 풀이 만을 설명할 것이다. 다음은 문제 및 예시 실행결과이다. 문제: https://www.acmicpc.net/problem/2941 2941번: 크로아티아 알파벳 문제 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- d..

[백준 알고리즘] 1157번 - 단어공부 (strupr() 함수)

1. 문제 및 예시 실행결과 이번 문제에서 문제를 두번이나 틀렸다(내 정답률 ㅠㅠ) 사실 나의 잘못이기도 하다...... 컴파일 에러도 두번이나 발생하였는데 strupr() 함수 때문이었다. 차라리 이런 컴파일 에러는 구글을 통해 고칠 수 있지만, 오늘과 같은 논리 오류는 정말 머리를 아프게 한다...... 다음은 문제와 예시 실행 결과이다. 출처: https://www.acmicpc.net/problem/1157 1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. www.acmicpc.net 문제를 보면 대소문자를 구별하지 않는데, 이 부분을 처리할 때 컴파일 에러가 발생..

[백준 알고리즘] 2675번 - 문자열 반복

1. 문제 예시 실행결과 이번 문제는 입력받은 값만큼 한 문자를 반복해서 출력하는 문제이다. 나름 간단한 문제이지만, 결과 문자열을 어떻게 다루냐에 따라서 나름 생각이 깊어질 수 있는 문제이다. 다음은 문제와 예시 실행결과이다. 출처: https://www.acmicpc.net/problem/2675 2675번: 문자열 반복 문제 문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 www.acmicpc.net 다시한번 말하지만 이 문제는 출력형식에 따라 까다로워질 수 있다. 다음은 풀이 과정이다. 2. 문제풀이 첫번째 입력은 간단하다. 솔직히 말하면 두번째 입력..

[백준 알고리즘] 10809번 - 알파벳 찾기

1. 문제 및 예시 실행결과 항상 문제를 풀면 실전처럼 풀어야 하지 않을까 하고 생각한다. 그래서 오늘 문제은 문제를 풀때, 구글을 사용하지 않고 풀어보았다. 신기하게도 알파벳을 찾는 문제가 나왔다. 분명 이런 역할을 하는 함수는 존재한다. 그러나 나는 그것을 까먹었다. 내가 어떤 코드를 작성하고 있을 때는, 바로 구글을 켰겠지만, 나는 지금 코딩테스트를 본다고 생각하고 아는 문법으로 문제를 풀기 시작하였다. 물론 관련된 함수도 이번 글에서 소개할 것이다. 다음은 문제와 예시실행결과이다. 출처: https://www.acmicpc.net/problem/10809 10809번: 알파벳 찾기 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백..

[백준 알고리즘] 11720번 - 숫자의 합

1. 문제, 예시 실행결과 이번 카테고리는 문자열! 가장 긴장하고 있는 부분이다. 사실 포인터나 배열같은 부분도 자잘한 문법들이 많고 틀리기 쉬운 부분이 많다고 생각한다. 나도 시험 보기 전날에만 달달 외웠지 막상 문자열이나 문자열을 가리키는 포인터에 대한 문법문제를 푼다면 많은 문제에서 어려움을 느낄것이다. 아마 구글이 없었다면, 항상 전공책을 들고다녔을 것 같다...... 이번 카테고리를 풀면서 나의 이런 부분을 보완하고 그런 과정을 블로그에 올렸으면 좋겠다. 다음은 이번에 풀어볼 문제이다. 출처: https://www.acmicpc.net/problem/11720 11720번: 숫자의 합 첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다. ww..

[백준 알고리즘] 1065번 - 한수

1. 문제, 예시 실행결과 함수 카테고리의 마지막 문제이다. 문제를 요약하자면, 등차수열과 관련된 문제이다. 등차수열은 이미 고등학교시절 배운 내용이고, 잘 알려진 일반항도 존재하기에, 내가 한 일은 첫항과, 공차를 구하는 것이었고 이를 함수로 구현한것 밖에 없다. 다음은 문제와 예시 실행결과이다. 출처: https://www.acmicpc.net/problem/1065 1065번: 한수 어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 �� www.acmicpc.net 문제는 간단하다. 한수를 이해하는데 어려움이 있을 수 있다. 한수에 대해서는 문제 풀이 과..