다른 언어에서는 많이 사용하는 방법이지만, c나 c++을 처음 배울 때는 잘 알지 못하는 방법이다.
일반적으로 사용하는 for문은
for(int i=0; i<n; i++)
int now = x[i];
이런식인데
이렇게 사용해도 된다.
for(int now:x)
이렇게하면 알아서 x라는 배열의 처음부터 끝까지 반복문을 돌리게 된다.
다른 언어에서는 많이 사용하는 방법이지만, c나 c++을 처음 배울 때는 잘 알지 못하는 방법이다.
일반적으로 사용하는 for문은
for(int i=0; i<n; i++)
int now = x[i];
이런식인데
이렇게 사용해도 된다.
for(int now:x)
이렇게하면 알아서 x라는 배열의 처음부터 끝까지 반복문을 돌리게 된다.
코드를 설명하자면 단어 여러개(n개)를 받은 후
단어 길이가 짧고, 길이가 같다면 단어를 사전 순으로 나열하였다.
그리고 중복되는 단어는 생략하였다.
#include<iostream>
#include<cstdio>
#include<string>
#include<algorithm>
#include<vector>
#include<utility>
using namespace std;
int main(void) {
int n;
cin >> n;
vector<pair<int,string>> v;
for(int i=0;i<n;i++) {
string s;
cin >> s;
int l = s.length();
v.push_back(make_pair(l,s));
}
sort(v.begin(), v.end());
for (int i = 0; i < n; i++) {
if (i>0&&v[i].second == v[i - 1].second)
continue;
else
printf("%s\n", v[i].second.c_str()); // cout << v[i].second << endl과 같은 의미
}
return 0;
}
c_str()을 끝에 붙여줘야한다
Geoloaction 정확도 올리는 법 (0) | 2020.02.16 |
---|---|
컴공을 위한 구글링 팁, 용어 정리 (계속 추가 중) (0) | 2020.01.26 |
cin cout 입출력 속도 높이기 (0) | 2018.07.23 |
Tuple 사용법 : vector나 queue 이용할 때 접근법 (0) | 2018.07.20 |
visual studio (비주얼 스튜디오) indent(인덴트) 하는법 (3) | 2018.07.20 |
#include<iostream>
using namespace std;
int main(void) {
int T;
cin.tie(NULL);
ios_base::sync_with_stdio(false);
cin >> T;
while (T--) {
int a, b;
cin >> a >> b;
cout << a + b << "\n";
}
return 0;
}
코드에 이 두 문장 추가
cin.tie(NULL);
ios_base::sync_with_stdio(false);
줄바꿈은 endl이 아닌 "\n" 사용하면 좋다. endl을 사용하면 버퍼를 비우고, 그 오버헤드는 생각보다 크다!
Geoloaction 정확도 올리는 법 (0) | 2020.02.16 |
---|---|
컴공을 위한 구글링 팁, 용어 정리 (계속 추가 중) (0) | 2020.01.26 |
vector의 string을 printf하는법 (0) | 2018.07.27 |
Tuple 사용법 : vector나 queue 이용할 때 접근법 (0) | 2018.07.20 |
visual studio (비주얼 스튜디오) indent(인덴트) 하는법 (3) | 2018.07.20 |
7.20
pair에서는
#include<pair>
#include<queue>
queue<pair<int,int>> a;
a.push(make_pair(1,2))를 하면 1과2를 넣을 수 있고,
a.front().first 로 1에 접근
a.front().second 로 2에 접근 가능하다.
tuple은 pair와 다르게 first와 second로 접근하지 못한다.
tuple을 사용할 때 접근법은
#include<tuple>
#include<queue>
일단, queue(큐)와 tuple을 이용하니 두 헤더를 넣어준 후
queue<tuple<int, int, int>> q;
q.push(make_tuple(a, b, c)); 이라고 하면 queue에 a,b,c라는 int가 들어가는데,
이때 각각 접근하려면
a는 get<0>(q.front());
b는 get<1>(q.front());
c는 get<2>(q.front());
으로 접근 가능하다.
Geoloaction 정확도 올리는 법 (0) | 2020.02.16 |
---|---|
컴공을 위한 구글링 팁, 용어 정리 (계속 추가 중) (0) | 2020.01.26 |
vector의 string을 printf하는법 (0) | 2018.07.27 |
cin cout 입출력 속도 높이기 (0) | 2018.07.23 |
visual studio (비주얼 스튜디오) indent(인덴트) 하는법 (3) | 2018.07.20 |
7.20
putty에서 gcc쓸때 gg=G로 인덴트하는게 편해서 비주얼도 되는지 찾아봤다.
1. 인덴트 하고자 하는 부분을 선택한 후(ctrl+A로 전체 지정하는게 편하다)
2. alt+F8 누르면 된다...
이게 안된다면
1. 인덴트 하고자 하는 부분을 선택한 후(ctrl+A로 전체 지정하는게 편하다)
2. (ctrl+k)
3. (ctrl + f)
Geoloaction 정확도 올리는 법 (0) | 2020.02.16 |
---|---|
컴공을 위한 구글링 팁, 용어 정리 (계속 추가 중) (0) | 2020.01.26 |
vector의 string을 printf하는법 (0) | 2018.07.27 |
cin cout 입출력 속도 높이기 (0) | 2018.07.23 |
Tuple 사용법 : vector나 queue 이용할 때 접근법 (0) | 2018.07.20 |
7.20
보통은 그림 한 두장, 혹은 글로만 설명되어 있는 알고리즘(배열같은 것들)을 정말 친절하게 하나하나 설명해주어서 이해하기 좋은 책이었던 것 같다.
그렇지만 조금 어려운 내용의 알고리즘은 설명이 좀 부실한 거 같다.
대충 이런 알고리즘이 있구나, 이런 원리이구나! 같은걸 알기에는 정말 좋은 책.
하지만 응용법과 정말 구체적인 작동 원리를 알고 싶으면 스스로 더 찾아봐야한다.
알고리즘 처음 배우는 사람에게는 좋은 책인 것 같다.
알고리즘 도감이라는 어플도 있어서 다운 받았는데, 이것도 유용한 것 같다. 다만 몇 개의 알고리즘은 유료 결제를 해야 볼 수 있다...
'함께 자라기'를 읽으면서 드는 생각들 (0) | 2021.07.20 |
---|---|
해커와 화가 (0) | 2020.07.16 |