알고리즘/BOJ 1235

백준 1043번 거짓말

문제 링크입니다: https://www.acmicpc.net/problem/1043 1043번: 거짓말 지민이는 파티에 가서 이야기 하는 것을 좋아한다. 파티에 갈 때마다, 지민이는 지민이가 가장 좋아하는 이야기를 한다. 지민이는 그 이야기를 말할 때, 있는 그대로 진실로 말하거나 엄청나게 과장해서 말한다. 당연히 과장해서 이야기하는 것이 훨씬 더 재미있기 때문에, 되도록이면 과장해서 이야기하려고 한다. 하지만, 지민이는 거짓말쟁이로 알려지기는 싫어한다. 문제는 몇몇 사람들은 그 이야기의 진실을 안다는 것이다. 따라서 이런 사람들이 파티에 왔을 때는, 지민 www.acmicpc.net N과 M이 최대 50이기 때문에 시간복잡도가 O(N^3)이여도 무난하게 풀 수 있는 문제였습니다. 알고리즘은 아래와 같습..

알고리즘/BOJ 2020.03.05

백준 11328번 Strfry

문제 링크입니다: https://www.acmicpc.net/problem/11328 11328번: Strfry 문제 C 언어 프로그래밍에서 문자열(string)은 native한 자료형이 아니다. 사실, 문자열은 그저, 문자열의 끝을 표시하기 위한 말단의 NULL이 사용된, 문자들로 이루어진 문자열일 뿐이다. 하지만 프로그래밍 언어에서 문자열을 다루는 것은 매우 중요하기 때문에, C 표준 라이브러리는 문자열을 다루는 데에 매우 유용한 함수들을 제공하고 있다 : 그들 중에는 strcpy, strcmp, strtol, strtok, strlen, strcat 가 있다. www.acmicpc.net BaaaaaaaaaaarkingDog님의 문제집에 수록된 문제집을 풀고 있습니다. 아직 초기 문제집이기 때문에 ..

알고리즘/BOJ 2020.03.02

백준 1267번 핸드폰 요금

문제 링크입니다: https://www.acmicpc.net/problem/1267 1267번: 핸드폰 요금 첫째 줄에 싼 요금제의 이름을 출력한다. 그 후에 공백을 사이에 두고 요금이 몇 원 나오는지 출력한다. 만약 두 요금제의 요금이 모두 같으면 영식을 먼저 쓰고 민식을 그 다음에 쓴다. 영식은 Y로, 민식은 M으로 출력한다. www.acmicpc.net 모듈러 연산을 알맞게 처리해야 AC를 받을 수 있는 수학 문제였습니다. while문을 처리하는 것이 더 쉬웠겠지만 삼항연산자를 통해 코드를 간결화 시키는 것에 집중했습니다. 개발환경:Visual Studio 2017 지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

알고리즘/BOJ 2020.03.01

백준 10804번 카드 역배치

문제 링크입니다: https://www.acmicpc.net/problem/10804 10804번: 카드 역배치 1부터 20까지 오름차순으로 놓인 카드들에 대해, 입력으로 주어진 10개의 구간 순서대로 뒤집는 작업을 했을 때 마지막 카드들의 배치를 한 줄에 출력한다. www.acmicpc.net N이 20이기 때문에 입력받을 때마다 배열을 직접 바꿔줘도 무방한 문제였습니다. 개발환경:Visual Studio 2017 지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

알고리즘/BOJ 2020.03.01

백준 2108번 통계학

문제 링크입니다: https://www.acmicpc.net/problem/2108 2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net 재채점 결과 틀려서 다시 풀고 재업로드합니다. 최빈값을 구하는 조건이 까다롭기 때문에 정렬 조건을 충족시키는 cmp 함수를 작성하고 3항 연산자를 통해 답을 구했습니다. 개발환경:Visual Studio 2017 지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

알고리즘/BOJ 2020.02.24

백준 11375번 열혈강호

문제 링크입니다: https://www.acmicpc.net/problem/11375 11375번: 열혈강호 강호네 회사에는 직원이 N명이 있고, 해야할 일이 M개가 있다. 직원은 1번부터 N번까지 번호가 매겨져 있고, 일은 1번부터 M번까지 번호가 매겨져 있다. 각 직원은 한 개의 일만 할 수 있고, 각각의 일을 담당하는 사람은 1명이어야 한다. 각각의 직원이 할 수 있는 일의 목록이 주어졌을 때, M개의 일 중에서 최대 몇 개를 할 수 있는지 구하는 프로그램을 작성하시오. www.acmicpc.net 전형적인 이분매칭(Bipartite Matching) 문제였습니다. 이분매칭에 대해서는 Jason9319님이 정말 설명을 잘해주시고 계십니다.(https://jason9319.tistory.com/149..

알고리즘/BOJ 2020.02.23

백준 9322번 철벽 보안 알고리즘

문제 링크입니다: https://www.acmicpc.net/problem/9322 9322번: 철벽 보안 알고리즘 문제 소희는 공개키와 개인키 한 쌍으로 보안을 유지하는 것이 매우 불편하다고 생각했다. 그래서 소희는 공개키와 개인키를 암호화 체계를 개발했다. 이를 "철벽 보안 알고리즘"이라고 부르기로 했다. 알고리즘은 다음과 같다. 한 단어는 1~10개의 대문자(A-Z)들로 이루어진 문자열이다. 한 문장은 공백으로 구분된 단어들로 이루어졌다. 제 1 공개키는 최대 한 번만 사용된 단어들로 되어있다. 제 2 공개키는 제 1 공개키의 단어들을 재배치하여 만들어진다. 평문 www.acmicpc.net 생각보다 머리를 써야하는 문제였습니다. 자료구조는 map과 vector를 사용했습니다. 기본적인 로직은 ma..

알고리즘/BOJ 2020.02.19

백준 16673번 고려대학교에는 공식 와인이 있다

문제 링크입니다: https://www.acmicpc.net/problem/16673 16673번: 고려대학교에는 공식 와인이 있다 첫 번째 줄에 수빈이가 와인을 모은 년수, 수빈이의 고려대 애착 정도, 수빈이의 구매중독 정도를 의미하는 정수 C, K, P가 공백으로 구분되어 주어진다. (0 ≤ C ≤ 100, 0 ≤ K ≤ 1000, 0 ≤ P ≤ 100) www.acmicpc.net 간단한 수학 공식을 적용하여 푸는 문제였습니다. 1~n까지의 합, 1~n^2까지의 합을 구하는 공식만 안다면 쉽게 풀 수 있으셨을겁니다. 개발환경:Visual Studio 2017 지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

알고리즘/BOJ 2020.02.18

백준 14395번 4연산

문제 링크입니다: https://www.acmicpc.net/problem/14395 14395번: 4연산 첫째 줄에 정수 s를 t로 바꾸는 방법을 출력한다. s와 t가 같은 경우에는 0을, 바꿀 수 없는 경우에는 -1을 출력한다. 가능한 방법이 여러 가지라면, 사전 순으로 앞서는 것을 출력한다. 연산의 아스키 코드 순서는 '*', '+', '-', '/' 이다. www.acmicpc.net 사칙연산의 우선순위가 있기 때문에 *, +, / 순으로 큐에 Node를 push 하도록 코드를 작성했습니다. - 같은 경우 s, t 모두 0이 될 수 없으므로 로직에 포함시키지 않았습니다. 중복된 s를 계산하지 않기 위해 map을 사용했고 각 과정을 Node 구조체의 process 문자열에 저장했습니다. 마지막으로 ..

알고리즘/BOJ 2020.02.17

백준 2941번 크로아티아 알파벳

문제 링크입니다: https://www.acmicpc.net/problem/2941 2941번: 크로아티아 알파벳 문제 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= 예를 들어, ljes=njak은 크로아티아 알파벳 6개(lj, e, š, nj, a, k)로 이루어져 있다. 단어가 주어졌을 때, 몇 개의 크로아티아 알파벳으로 이루어져 있는지 출력한다. dž는 무조건 하나의 알파벳으로 쓰이고, www.acmicpc.net 간단한 문자열 문제였습니다. 1년 전에 풀었던 문제가 최근 추가된 엣지케이스에 의해 WA 판정이 나서 다시 풀..

알고리즘/BOJ 2020.02.16