오늘은 매주 알고리즘 스터디에서 진행하는 이벤트 날인데, 모여서 3문제를 3시간 안에 푸는 날이다.
문제 난이도는 스터디원을 고려하여 실버 3~골드 2, 프로그래머스 level 1,2로 출제했다.
쉬운 문제, 중간문제, 좀 더 어려운 문제 순으로 문제를 냈다.(내가 스터디 장이라 문제를 출제했다.)
결과적으로 어려운 문제(3번 문제)는 풀지 못했는데, 카카오 문제였다!! ㅠㅠ
내일 문제를 다시 한번 풀 예정이다.
1번 문제
url : https://school.programmers.co.kr/learn/courses/30/lessons/147355
단순 문자열 추출 문제이다.
코드
#include <bits/stdc++.h>
using namespace std;
string str;
int solution(string t, string p) {
int answer = 0;
//1. 부분 문자열 구하기
int pSize = p.size();
for (int i=0;i<=t.size()-pSize;i++){
str = t.substr(i, pSize);
while (str[0]=='0'){
str.erase(0, 1);
}
//2. 숫자 비교하기
if (str.size() < p.size()) answer++;
else if ((str.size() == p.size()) && str <= p) answer++;
}
//3. 정답 출력하기
return answer;
}
2번 문제
url : https://school.programmers.co.kr/learn/courses/30/lessons/154540
dfs 문제이다.
코드
#include <bits/stdc++.h>
using namespace std;
int visited[104][104];
int dy[4]= {-1, 0, 1, 0};
int dx[4]= {0, 1, 0, -1};
int dfs(vector<string> &maps, int y, int x){
visited[y][x]=1;
int sum = (maps[y][x] - '0');
for(int i=0;i<4;i++){
int ny = y+ dy[i];
int nx = x + dx[i];
if (ny<0 || nx<0 || ny>=maps.size() || nx>=maps[0].size()) continue;
if (visited[ny][nx]) continue;
if (maps[ny][nx]!='X'){
sum += dfs(maps, ny, nx);
}
}
return sum;
}
vector<int> solution(vector<string> maps) {
vector<int> answer;
//1. dfs 수행
for (int i=0;i<maps.size();i++){
for(int j=0;j<maps[i].size();j++){
if (maps[i][j]!='X' && visited[i][j]==0){
answer.push_back(dfs(maps, i, j));
}
}
}
if (answer.empty()) return {-1};
//2. 배열 정렬
sort(answer.begin(), answer.end());
return answer;
}
3번 문제
url : https://school.programmers.co.kr/learn/courses/30/lessons/150369
위 문제는 못풀었기때문에..(테스트케이스에서 실패로 떴다...)
내일 다시 풀어볼 예정이다! ㅠㅠ
여담
새해라서 막연히 더 열심히 할 수 있겠지, 라고 생각했지만
예상보다 빨리 다가온 1월에.. 새해를 제대로 맞이하지 못하는 요즘이다.
그래도 다급해하지않고 꾸준히 알고리즘을 풀 예정이다.
쉬운 문제더라도, 어려워서 포기하고 싶을 때에도, 꾸준하게 도전해 가는 마음이 내 정신력을 키운다고 믿는다.. ㅋㅋㅋ
당장 탁월한 실력으로 문제를 술술 풀기는 어렵겠지만, 꾸준하고 성실하게 문제를 푸는 것만으로도 나 또는 누군가에게 감동을 줄 수 있다고 믿는다.
부족한 나라도 좀 더 나아질 나를 위해 격려하며 앞으로 나아가자~~
화이팅!!
'알고리즘 > 알고리즘 문제풀이' 카테고리의 다른 글
[백준] 1167 : 트리의 지름 (2) | 2024.01.06 |
---|---|
[백준] 1149번 : RGB 거리 (0) | 2024.01.04 |
[백준] 15654: N과 M(5) (0) | 2024.01.02 |
[프로그래머스] 181187: 두 원 사이의 정수 쌍 (2) | 2024.01.02 |
[백준] 11401 : 이항 계수 3 (0) | 2023.12.31 |