나 개발자 진짜 되냐?

코딩테스트 입문 - 다항식 더하기 ( substr, ss, back ) 본문

프로그래머스를 풀어보아요!/C++

코딩테스트 입문 - 다항식 더하기 ( substr, ss, back )

Snow Rabbit 2026. 5. 16. 02:46

 

벌써 5월의 절반이 날아갔습니다.

날아갔다는 표현이 좋겠군요.

왜냐면 문제는 너무 어렵고..

다시 풀기도 어렵고

그 냥 어려운 문제 투성이기 때문이지요.

 

한 사이클이 끝나면 어떤 문제를 다시 풀어야 할지 고민이 됩니다.

 

풀었던걸 또 풀어야 할지

또 새로운 문제를 풀어야 할지..

 

풀어도 풀어도..

풀게 많네요.....

 


 

 

네.. 말이 정말 많습니다.

 

결국 음..

띄어쓰기대로 자르는 stringstream을 써야 할 거 같고

이 친구는 #include <sstream>을 씁니다.

그 뒤로 가 문제인 게..

3x를 얘는 뭘로 알아들을지가 의문이었다.

x는 그렇다 치고...

숫자도 그렇다 치고..

3x는 어떡하지..?

 

흠..

인지 씨에게 3x도 지가 알아서 숫자 3 그리고 문자 x로 분류가 되냐고 물었다.

아니라고 한다.

 

ㅋㅋㅋ

그럼 어떡하냐니깐

 

힌트를 하나 줬다.

 

back();

문자열의 맨뒤 값을 가져온다.

 

그래서 3x를 가져왔을 때

맨 뒤가 x면?

x 식끼리

x가 없으면? 그냥 상수항만 더하도록

구성하게 된다.

 

그래서 필요한 건

 

일차항 담을 변수 하나

상수항 담을 변수 하나가 필요하고

 

중요한 건

+일 땐 넘기고

x항일 땐

3x를 받아서 앞에 x를 자르고 앞에 3만 숫자로 바꿔서 저장해야 한다.

 

문자열을 자른다....?!

 

substr

2026.05.13 - [프로그래머스를 풀어보아요!/C++] - 코딩테스트 입문 - 잘라서 배열로 저장하기 ( substr )

 

바로 어제 문제였지만

기억하지 못한 나.

 

긁적.......

요즘 머리가 복잡해서 공부 하나해도 다음날 다 까먹는다

자랑 아닌데.. 여하튼..!

 

substr을 이용해서

어디서부터, 얼마큼 자를 건지 적으면 된다.

 

 

0부터 사이즈에서 한 칸 뺀 만큼 즉 X만 빼는 것!

그리고 제일 중요한 건

결국 맨 앞에 남는 건 문자열일 테니

그것을 stoi로 숫자로 만들어준다.

 

두 번째 중요한 건 

answer인데

 

1. 일차항이 1이면 그냥 X로 내야 한다.

 

2. 1차항이든 상수항이든 하나밖에 없으면 +를 쓰면 안 된다.

 

if문 난사해야 한다.

1. 우선 x항이 0보다 클 때

그런 와중에도 1일 때

그리고 1 이상일 때

 

2. 둘 다 있을 때에만 +를 쓰고

 

3. 상수가 0보다 크면 answer에 추가한다.

 

 

이렇게 써줬다.

 

그래서 내 답은

 

여기 마지막 if - else 어떻게 해야 하나 고민했는데

 

인지 씨가 가독성 버전으로 알려주었다.

 

 

이렇게도 삼항연산자를 쓸 수 있다니...

 

그리고

 

일차항 안에다가

answer이 비었지 않으면, 즉 위에를 계산하고 왔다면!

즉 x항이 있다면 +를 써주고,

 

answer에다가 sum을 추가해 준다.

 

좀 더 가독성 있고 깔끔하다.

 

 

제일 중요한 것은

여기 while문

 

그리고 tmp의 


 


왘!!!!!!!

엄청 어려운 문제였다.

 

가장 여기서 중요했던 부분은

 

 

stringstream으로 글자 잘라서

tmp이라는 빈통에 넣어주고

back를 통해 x가 붙어있으면

x를 포함한 문자열에서 x 만 자르고 숫자화 후 넣어주기

 

중요했다.

 

쉽지 않았다.

너무 어려웠다.

급 피곤해진다.