분류 전체보기
[c++] 백준(BOJ)14888 - 연산자 끼워넣기
🔗 문제 링크 14888번: 연산자 끼워넣기 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, www.acmicpc.net 📂 분류 순열 구현 💡 풀이 이 문제는 풀이 방식이 여러 가지 존재할 것 같은데 나는 순열을 통해 풀었다. 연산자 개수를 입력 받으면서 op라는 vector에 연산자 개수만큼 아래와 같이 연산자를 저장한다. 연산자가 +일 경우 0 연산자가 -일 경우 1 연산자가 *일 경우 2 연산자가 /일 경우 3 저장을 한 후 next_permutation함수를 이용해 순열을 구하고 우선 순위가 없기 때문에 ..
[자바] 프로그래머스 - 카펫 (Level 2)
🔗 문제 링크 코딩테스트 연습 - 카펫 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 programmers.co.kr 📝 문제 설명 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 갈색으로 색칠된 격자의 개수는 기억했지만, 전체 카펫의 크기는 기억하지 못했습니다. Leo가 본 카펫에서 갈색 격자의 수 brown, 노란색 격자의 수 yellow가 매개변수로 주어질 때 카펫의 가로, 세로 크기를 순서대로 배열에 담아 re..
[c++] 프로그래머스 - 빛의 경로 사이클 (Level 2)
🔗 문제 링크 코딩테스트 연습 - 빛의 경로 사이클 각 칸마다 S, L, 또는 R가 써져 있는 격자가 있습니다. 당신은 이 격자에서 빛을 쏘고자 합니다. 이 격자의 각 칸에는 다음과 같은 특이한 성질이 있습니다. 빛이 "S"가 써진 칸에 도달한 경우, 직진 programmers.co.kr 📂 분류 완전 탐색 그래프 탐색 시뮬레이션 💡 풀이 문제를 처음 읽었을 때 이해가 안 돼서 문제 예시를 손으로 직접 해보니깐 이해가 됐다. 방문처리를 방향이 존재하기 때문에 방향까지 넣어줄 3차원 배열을 쓰는 게 가장 핵심이다. 모든 방향에 대해 BFS를 써서 탐색하면 된다. 방향 전환 아래와 같이 구현 L일 때 방향 전환 (dir + 1) % 4 R일 때 방향 전환 dir == 0 ? 3 : dir - 1 사이클 처리..
[c++] 프로그래머스 - 신고 결과 받기 (2022 KAKAO BLIND RECRUITMENT)
🔗 문제 링크 코딩테스트 연습 - 신고 결과 받기 문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 programmers.co.kr 📂 분류 문자열, 구현, 자료구조 💡 풀이 카카오 코테에서 자주 출제되는 문자열 처리 후 구현하는 문제이다. 우선 id를 매핑하기 위해 map이 필요하다. 그리고 유저 ID와 유저가 신고한 ID를 저장하는 자료구조를 map과 2차원 vector를 고민하다가 2차원 vector로 하기로 했다. 한 유저가 동일한 유저에 대한 신고 횟수는 1회이기 때문에 vector로 선언을 하고 report를 공백 분리한 후 유저 ID와 유저가 신고한 ID 테..
[C++] 프로그래머스 - 더 맵게 (Level 2)
🔗 문제 링크 코딩테스트 연습 - 더 맵게 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같 programmers.co.kr 📂 분류 Heap 자료구조 💡 풀이 전형적인 우선순위 큐를 활용해서 푸는 문제다. 주어진 스코빌 지수들 중에서 가장 작은 스코빌과 두 번째로 작은 스코빌을 뽑아 K 이상일 때까지 수행해야 하기 때문에 최소 힙을 이용해서 풀면 된다. 📌 주의할 점 pq의 원소 두 개를 뽑기 때문에 로직을 수행할 때 pq.size()는 2보다 커야 한다. 💻 코드 #include using namespace std; int solution(vector s..
[Clean Code] 10장 클래스
Clean Code 10장 클래스 코드의 표현력과 그 코드로 이루어진 함수에 아무리 신경 쓸지라도 좀 더 높은 차원 높은 단계까지 신경 쓰지 않으면 깨끗한 코드를 얻기는 어렵다 클래스 체계 클래스를 정의하는 표준 자바 관례에 따른 순서 정적 공개 상수 정적 비공개 변수 비공개 인스턴스 변수 공개 변수 (필요한 경우는 거의 없음) 공개 함수 비공개 함수 (자신을 호출하는 공개 함수 직후) 추상화 단계가 순차적으로 내려간다. 캡슐화 변수와 유틸리티 함수는 가능한 공개하지 않는 편이 낫지만 반드시 숨겨야 한다는 법칙도 없다. 때때로 변수나 유틸리티 함수를 protected로 선언해 테스트 코드에 접근을 허용하기도 한다. 하지만 그전에 비공개 상태를 유지할 온갖 방법을 강구해야 한다. 캡슐화를 풀어주는 결정은 ..