5 - S 실전 관련 질문 드립니다..!
풀긴 했는데 메모리랑 시간 사용량이 어마어마 해서요..
실전이 얼마 안남아서 실전에서도 이렇게 풀어도 되나 싶어서 여쭤봅니다...
제가 파악한 큰돌님과 저의 코드 차이점은
저는 연산 기호를 사용할 수 있냐는 기준을
카운팅 배열을 쓰고 원복하고 했던 거랑
수식들을 계산할 때, 스택에 넣고 계산하는 방식을 쓴 게 가장 큰 차이인 것 같습니다.

그리고 실제 문제로 이런 문제가 나온다면 몇 분 안에 풀어야 될지도 궁금합니다..! 저는 40~50분 안에 풀면 안정권이라 생각했는데 큰돌님 의견이 궁금하네욤!
http://boj.kr/229b1729870841dfa19aaa13c1760073
답변 2
0
안녕하세요 자르트님 ㅎㅎ
그리고 실제 문제로 이런 문제가 나온다면 몇 분 안에 풀어야 될지도 궁금합니다..! 저는 40~50분 안에 풀면 안정권이라 생각했는데 큰돌님 의견이 궁금하네욤!
-> 이런 문제는 10분안에 풀어야 합니다. 그러나, 이건 이상적인 것이구요.
코테 시간과 문제수를 보고 전략을 세워야 합니다.
시간이 3시간이 주어지고 5문제 풀어야 한다면 -> 처음 3문제는 1시간안에 푼다 나머지 2문제를 2시간안에 푼다. 이런식으로 대략의 시간제한을 둬서 푸시는게 좋습니다.
실전이 얼마 안남아서 실전에서도 이렇게 풀어도 되나 싶어서 여쭤봅니다...
-> 로직의 경우 잘 짜셨습니다. ㅎㅎ 이렇게 짜도 괜찮긴 하죠. 다만 개선할 부분이 있어서 이부분 참고해서 다시 짜는 연습해주세요.
코드리뷰를 드리면 다음과 같습니다.
stack의 사용이 불필요해보입니다. + 연산자 조합함수의 경우 좀 더 최적화시킬 수 있습니다. + call by reference로 받는게 더 좋습니다.
제가 한번 다듬어봤는데요. ㅎㅎ
참고해주세요
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n, _max = LLONG_MIN, _min = LLONG_MAX;
ll a[14];
ll yunsan[4]; // + - * /
vector<vector<ll>> v;
void combi(vector<ll>& b) {
if (b.size() == n - 1) {
v.push_back(b);
return;
}
for (ll i = 0; i < 4; i++) {
if (yunsan[i] > 0) {
yunsan[i]--;
b.push_back(i);
combi(b);
b.pop_back();
yunsan[i]++;
}
}
}
ll cal(vector<ll>& oper) {
ll result = a[0];
for (ll i = 0; i < oper.size(); i++) {
if (oper[i] == 0)
result += a[i + 1];
else if (oper[i] == 1)
result -= a[i + 1];
else if (oper[i] == 2)
result *= a[i + 1];
else if (oper[i] == 3)
result /= a[i + 1];
}
return result;
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
cin >> n;
for (ll i = 0; i < n; i++) cin >> a[i];
for (ll i = 0; i < 4; i++) cin >> yunsan[i];
vector<ll> temp;
combi(temp);
for (vector<ll>& b : v) {
ll value = cal(b);
_max = max(_max, value);
_min = min(_min, value);
}
cout << _max << '\n';
cout << _min << '\n';
}
이제 곧 코테이신가요? 화이팅입니다 자르트님!! 꼭 뿌셔버리고 오세요
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다. 자르트님 질문에 대해 답변 드리겠습니다.
질문 주신 내용은 코딩 테스트에서의 문제 해결 전략에 관한 것으로 보입니다. 특히, 메모리와 시간 최적화가 중요한 점에 대해 고민하고 계신 것 같습니다. 코딩 테스트에서 시간과 메모리 사용량은 매우 중요한 부분이기 때문에, 최적화된 코드를 짜는 것이 필요합니다.
큰돌님의 코드와 비교하여 말씀하신 카운팅 배열 및 수식 계산 방법이 메모리와 시간에 영향을 미쳤을 수 있습니다. 카운팅 배열을 사용하는 방법은 간단하고 직관적이지만, 문제의 크기에 따라 메모리 소모가 클 수 있습니다. 반면, 스택을 활용한 계산 방식은 좀 더 효율적일 수 있으나, 구현이 더 복잡할 수 있습니다.
실전 코딩 테스트에서는 일반적으로 문제를 해결하는 데 20~40분을 목표로 하십니다. 그러나, 문제의 난이도에 따라 시간은 달라질 수 있으며, 문제의 정확성과 효율성도 중요하니, 그런 부분도 고려하셔야 합니다. 특히 어려운 문제일 경우에는 40~50분 정도까지도 시간이 걸릴 수 있습니다.
유사한 질문에 대해 더 깊이 있는 설명이나 토론이 이루어진 게시물을 참고하시기 바랍니다:
해당 링크에서 비슷한 접근 방법과 최적화 팁을 확인하실 수 있을 것입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
교안 158페이지 문의드립니다
0
10
2
코딩살구클럽 관련 건의사항
0
29
1
코살에 19942 다이어트 문제에 N의 범위가 빠져있슴니다
0
13
1
진행 방법 질문드립니다!
0
45
2
2-I) 왜 이 문제가 그래프이론 카테고리에 있는지 잘 모르겠습니다.
0
55
2
2주차 개념#12 트리 순회
0
26
2
백준사이트가 종료된다고 합니다.
0
286
2
백준 서비스 종료
9
890
1
sk 하이닉스 코테 대비
0
367
2
3-G 최댓값 질문
0
50
1
모듈러 연산 값이 10이 아닌 경우도 있지 않나요?
0
83
2
3-I 코드 질문드립니다.
0
62
2
3-N 질문 있습니다.
0
66
2
학습방법
0
102
2
4-H 질문 있습니다 (코드 리뷰)
0
66
2
코딩테스트 어디까지 준비해야 하는지 질문이 있습니다.
0
170
2
2-O 반례가 무엇일지 어떤 부분이 틀렸는지 잘 모르겠습니다.
0
69
2
2주차 개념 #4-2. 인접행렬 질문있습니다.
0
64
2
1-A 문제풀이 후 궁금한 점이 생겨서 질문드립니다.
0
51
2
조합 재귀 풀이 확인 해주시면 감사하겠습니다.
0
68
2
함수별 시간복잡도
0
73
2
3-h 질문입니다.
0
49
1
안녕하세요 선생님. 시간 복잡도 4번 질문있습니다.
0
53
2
1-I 문제 질문 드립니다.
0
76
2





