본문 바로가기

[C++/JAVA] 문자열 정리 1. C++ 먼저 C++에서 문자열을 다루기 위해서는 헤더를 추가해주어야 한다. 먼저 string 클래스를 사용하려면 string 헤더를 포함해야합니다. iostream 헤더를 사용하시는 분이라면 이 안에 string 헤더가 포함되어 있으니 둘 중 하나만 포함하셔도 무방하다. iostream 헤더만 있으면 string 헤더를 따로 선언 할 필요가 없다. ** 활용법 문자열을 배열처럼 []로 접근하는 것이 가능하고, at으로도 사용이 가능하다. front() 는 문자열의 첫번째 값을 리턴해주는 함수이고 back()은 문자열의 마지막 값을 리턴해주는 함수이다. 자바와 동일하게 문자열의 길이는 length()로 사용하며 , size()도 c++ 에서는 지원한다. 그리고 capacity() 함수는 문자열에 할당..
[프로그래머스] 여행경로 - 풀다가 GG치고 블로그 보고 풀이 https://nanyoungkim.tistory.com/93 2 가 아닌 1->3이 되도록 해준다. 제한사항인 "주어진 항공권은 모두 사용해야 합니다" 를 만족하면 DFS함수를 리턴 시킨다. 3. 코드 #include #include #include #include using namespace std; int visited[10000] = {0,}; vector res; bool dfs(string start, vector tickets, int cnt){ if(cnt == tickets.size()) return true; for(int i=0; i
[프로그래머스] 기능개발 #include #include using namespace std; vector solution(vector progresses, vector speeds) { vector answer; int idx = 0; int days; int max = 0; int cnt = progresses.size(); for(int i=0; i
[DFS] 백준 전투 - 1303, 백준 그림 - 1926 (SOS) 백준 전투(1303) - 테스트 케이스 맞는데 뭐가 틀린지 도저히 모르겠다. 결과 : 틀렸습니다 백준 그림(1926) - dev C++ 에서 테스트 케이스는 맞음. 결과 : 런타임에러 해결책 댓글 달아주시면 음료 기프티콘 보내드릴게요!!, 카톡 아이디 남겨주세여 전투.cpp #include #include #include #include #include #include using namespace std; int N,M; // 입력값 int eachPower, eachPower2; // 병사수 char map[100][100], cpy[100][100]; // 전쟁터 int dx[] = {0,0,-1,1}; // 상하좌우 움직이는 템플릿 int dy[] = {-1,1,0,0}; // 상하좌우 움직이는 템..
[C++] 입출력 (cin vs getline) cin은 표준 입력 버퍼에서 개행 문자를 제외한 값을 가져온다. 공백이나 개행 입력 시 공백 이전까지의 값만 결과로 받아들인다. 개행 문자를 입력 버퍼에 남겨둔다. 문자열을 입력 받을 수 있다. 하지만! 아래와 같은 상황을 보자. 위 코드대로 실행을 하면 n을 입력 받은 후 문자열을 입력받지 않고 바로 다음 코드로 넘어가게 된다. 이유는 버퍼에 정수 값을 입력한 뒤 누른 엔터(‘\n’)가 그대로 남아있어 getline()에 들어가기 때문이다. 이를 해결하기 위해 cin.ignore() 라는 함수를 사용할 수 있다. 위와 같이 변경하면 cin.ingore()가 입력 버퍼의 모든 내용을 제거해주어 getline()이 정상적으로 동작할 수 있다. 추가적으로 cin.ignore() 함수에 대해 알아보자면 cin..
[그리디] 큰 수의 법칙 / [구현] 상하좌우 풀기 전 getline() 예제 큰 수의 법칙은 다양한 수로 이루어진 배열이 있을 때 주어진 수들을 M번 더하여 가장 큰 수를 만드는 법칙이다. 단, 배열의 특정한 인덱스에 해당하는 수가 연속해서 K번을 초과하여 더해질 수 없는 것이 이 법칙의 특징이다. 예를 들어 순서대로 2, 4, 5, 4, 6으로 이루어진 배열이 있을 때 M이 8이고, K가 3이라고 가정하자. 이 경우 특정한 인덱스의 수가 연속해서 세 번까지만 더해질 수 있으므로 큰 수의 법칙에 따른 결과는 6 + 6 + 6 + 5 + 6 + 6 + 6 + 5인 46이 된다. 단, 서로 다른 인덱스에 해당하는 수가 같은 경우에도 서로 다른 것으로 간주한다. 예를 들어 순서대로 3, 4, 3, 4, 3으로 이루어진 배열이 있을 때 M이 7이고, K가 2라고 가정하자. 이 경우..
[2021.05 ~ 06 초] 문자열 라이브러리 총집합 (ing) 최근 두번의 코딩테스트를 응시하며 문자열 문제가 주로 출제되는 것을 알 수 있었다. C++ 문자열에 대한 암기를 해보자. 1. string 사용법 2. string size 3. string ♣ string 인자 접근, access 관련 ▶ str1.at(index) 함수 원형 : char& at (size_t index); 함수 설명 : index(=인덱스) 에는 숫자가 들어가게되고, 해당 위치(n)에 해당하는 문자를 반환합니다. index는 0부터 시작합니다. index가 string의 범위를 벗어나게 되면 예외를 뱉습니다. 함수 예시 : str1.at(0); //"BlockDMask" -> 'B'를 리턴합니다. ▶ str1.operator[index] 함수 원형 : char& operator[](s..
[2021.04.08] 스택, 큐 스택(stack) www.youtube.com/watch?v=DsZHDmth6Pc 1. 1차원 배열로 구현하는 경우, 구현은 상대적으로 쉬우나 인풋 사이즈를 미리 알아야 함. 2. 리스트로 구현하는 경우, 구현은 상대적으로 어려우나 인풋 사이즈를 몰라도 된다. www.youtube.com/watch?v=WB_BoAgWLNU 1. 스택은 입구와 출구가 같음. 2. 가장 마지막에 들어온 데이터가 가장 먼저 처리가 된다. * 스택을 사용하는 방법 1. 라이브러리 include 2. 선언하기 stack s; s.push(); s.push(); while(!s.empty()){ s.top() 보여주기 } 큐(queue) 큐의 선언