전체 글54 백준 11005번 <진법 변환 2> - C++ 이거 푸는 데 너무 오래 걸려서.. 과정이라도 기록으로 남기려고 한다.생각처음엔 이렇게 간단하게 하면 될 줄 알았다. 입력받은 십진수 n을 b진법으로 나타내기 위해 계속 b로 나누며 나머지를 새 배열에 저장한 뒤에, 역순으로 꺼내는 방식. 간단하다. 사실 이게 맞는 거기도 하다. 근데, 예외 처리를 하지 않았다. 1. n1-1. n1-2. 그러니 9 이렇게 하고 채점을 5번이나 돌렸는데, 계속 틀리더라. 한 번 틀리면 내 오류지 채점기 오류가 아닌 건 알고 있다. 하지만 사람심리라는게 어쩔 수 없다. 할 수 없이 질문게시글 올려놓고 오늘 다시 켰는데, 답글에 조건문 하나가 잘못 고려되었다고 써 있었다. 등호처리를 하나 하지 않아서, 10이 저장된 배열이 A로 바뀌지 않는 현상이 발생하고 있었다. 이런 .. 2024. 8. 9. 백준 2745번 <진법 변환> - C++ 생각1. 숫자와 문자가 혼용되어 입력으로 들어오니, string으로 받은 다음 하나씩 처리하자2. 숫자, 알파벳 둘 다 문자로 취급하니까 아스키코드 범위 내에서 적정 값을 빼서, int형태의 배열에 넣자숫자 값으로 변형 완료3. 각 배열에 들어있는 숫자에 b진법의 거듭제곱을 곱해야 한다.4. 지수는 string의 길이에서 1을 뺀 값이 최대 지수이다.5. 반복문을 순회하면서, i값을 감소시키며 지수를 계산해 주자6. int 배열에 들어있던 원소들과 맞는 거듭제곱값을 곱해 total에 더해준다#include #include #include using namespace std;int main() { int b = 0; string n; int arr[100] = {0,}; int total = 0; .. 2024. 8. 7. 백준 2563번 <색종이> - C++ 생각첫 번째 자연수 : 색종이의 왼쪽 변과 도화지의 왼쪽 변 사이 거리두 번째 자연수 : 색종이의 아래쪽 변과 도화지의 아래쪽 변 사이 거리 겹치는 영역을 어떻게 처리할 것인가? ▶100*100 영역이니까 색종이가 안 덮힌 부분을 빼도 되겠다or100*100의 0으로 채워진 배열을 만들고, 검정색 색종이를 덮은 영역만 1로 바꾸자그럼 넓이는 행렬에서 1의 개수만 세면 된다.1. 첫 번째 자연수부터 오른쪽 10칸을 1로2. 두 번째 자연수부터 위로 10칸을 1로 채우자 정말 조심했어야 할 점이 있다. 이것때문에 자꾸 헤맸다.두 번째 자연수가 색종이의 왼쪽 아래점을 의미한다. 그래서 아무 생각 없이 '1을 위에서부터 채워 내려오면 되겠군' 이라는 생각을 담은 루프를for(int k=b+10; k>b; k--.. 2024. 8. 6. 백준 10798번 <세로 읽기> - C++ 쉬운 줄 알고 덤볐다가 생각보다 고전을 해서.. 생각 과정을 풀이하려 한다.5줄로 입력받는데, 처음엔 줄마다 단어의 개수가 같은 줄 알고 단순히 15*15행렬을 만들어 @로 채워뒀다.그런데 어라라 단어의 개수가 다르더라.그래서 어떻게 해야 좋을 지 고민했다. 생각1. 5줄로 입력받을 때, string 형식으로 받으면서 각 문자열의 길이를 배열에 저장해 두자.2. string 길이 정보를 담은 배열에서 max length를 뽑아내자3. 각 줄을 순회할 때, string이 max length보다 짧으면 나머지는 @로 채워넣자.4. 세로로 출력을 할 때, @가 아닌 문자에 대해서만 출력하자. #include #include #include #include using namespace std;int main().. 2024. 8. 5. 백준 25206번 <너의 평점은> - C++ 생각1. getline으로 20개를 입력받을 거다(sstream으로 각 변수에 하나씩 저장2. 과목 평점이 P가 아닐 때, 총학점에 학점을 더해줌3. 입력받으면서 학점*전공평점 결과를 전체 grade변수에 더해준다4. grade를 hakjeom으로 나누어평균을 계산한다. string으로 입력받은 상태에서, 학점을 어떻게 체크하느냐1. 마지막 원소가 P또는 F가 아니면2. 학점 부과그냥 sstream 라이브러리를 사용해 ss변수에 str을 넣고, 세 개의 변수에 각각 값을 할당했다. 소수점 자리수 표시는 cout.precision을 사용했다. #include #include #include #include using namespace std;int main(){ string str; float grad.. 2024. 8. 4. 백준 1316번 <그룹 단어 체커> - C++ 생각그룹단어체커1. 문자열의 길이만큼 탐색2. 현재 인덱스가 i이고 i-1의 원소가 현재 것과 다를 때, 비교 시작3. 현재의 문자를 0~i-1번째까지 비교하며 현재 같은 것이 있으면 플래그 세움#include #include #include using namespace std;int main() { int n = 0; cin >> n; string str; int group = 0; for (int k = 0; k > str; int flag = 0; for (int i = 1; i 2024. 8. 4. 이전 1 2 3 4 5 6 ··· 9 다음