본문 바로가기

분류 전체보기211

[C실습] 문자열 유형 분석 1 - 문자열에서 숫자 분리하기 문자열 유형 분석 1 - 문자열에서 숫자(정수) 추출하기 저번 포인터 과제에 이어서 문자열 과제에서도 연속해서 등장한 문제로, 문자열에서 숫자를 빼내는 연습을 해보겠습니다. 문자열에서 숫자가 저장되는 방식은 각각의 정수가 하나의 원소로 자리를 가지게 됩니다. 따라서 그림처럼 25와 35를 입력하더라도 문자열에서는 2,5 3,5 각각이 독립적으로 존재하기때문에 정수 25,35를 얻어내기 위해서는 숫자로 분리해내는 알고리즘이 필요합니다. 문자열을 다룰때 이러한 작업이 자유자재로 동반되어야 문제를 잘 해결할수있기때문에 이번 포스트에서 다루어보겠습니다. 1. 문자열에서 문자와 숫자를 분리하기 문제는 다음과 같습니다. 문자열을 입력받고 영문자는 영문자끼리 모아서 하나의 배열에 담고, 숫자는 문자열에 등장한 각 숫.. 2020. 10. 5.
[C실습] 포인터 유형 분석 1 - 조건부 정렬 포인터를 이용한 중복검사와 정렬 심화학습 이번에 제시된 과제를 리뷰하다가 포스트로 남기고 싶은점이 있어서 글을 쓰게 되었습니다. 정렬이나 중복검사 등 꾸준히 다뤄왔던 개념이었지만, 메모리조건으로 배열변수 생성에 제한을 둔다던가 포인터 사용을 강제하는 조건으로 같은 문제를 해결할때 익숙하지 않은 부분이 있게 되었습니다. 과제에 제시된 문제중 가장 고민을 했던 문제를 먼저 해결해보고 그 뒤에 문제 조건을 좀 더 심화하여 풀어보겠습니다. 문제 1. 두 배열을 포인터를 이용해 큰값과 작은값으로 분리하라 문제설명 두개의 배열에 정수를 입력받은 뒤에 각 배열의 원소의 개수를 계산합니다. 그 값을 n(배열A의 개수)과 m(배열B의 개수)이라 하겠습니다. 두 배열의 원소들중 큰 값들은 A배열로, 작은 값들은 B배열로 .. 2020. 9. 18.
[C언어/BOJ] BOJ 12605 단어순서 뒤집기 C언어 / 백준 12605번 단어순서 뒤집기 문제 자체는 어려운 문제가 아니지만, 문자열을 배우지 않았다는 가정하에 포인터를 이용하여 문제를 풀어보겠습니다. 생각하기 조금 까다로운 부분이 있어서 기억해두기 위해 기록을 남깁니다. 또한 포인터사용을 강제했을시에 바로 바로 풀이가 안떠올라서 배열을 통해 문제를 풀이 한뒤에 포인터로 바꾸는식으로 문제를 풀이했는데 포인터를 자유롭게 다룰 수 있도록 좀 더 연습이 필요하다고 느꼈습니다. 문제 및 입출력 스페이스로 띄어쓰기 된 단어들의 리스트가 주어질때, 단어들을 반대 순서로 뒤집어라. 각 라인은 w개의 영단어로 이루어져 있으며, 총 L개의 알파벳을 가진다. 각 행은 알파벳과 스페이스로만 이루어져 있다. 단어 사이에는 하나의 스페이스만 들어간다. 입력 첫 행은 N이.. 2020. 9. 11.
[C언어/BOJ] BOJ 1152 단어의 개수 백준 1152번 : 단어의 개수 2학기에 포인터,문자열, 메모리 동적할당 등의 내용들을 다루게 될 것이기 때문에 공부하던 도중, 난이도는 쉬운 문제이지만 문법적인 요소들을 종합적으로 공부해볼수 있어서 풀어보았습니다. 조금 주의해야할것은 문자열 앞 뒤로 공백이 존재한다는 것입니다. 문제 및 입출력 영어 대소문자와 띄어쓰기만으로 이루어진 문자열이 주어진다. 이 문자열에는 몇 개의 단어가 있을까? 이를 구하는 프로그램을 작성하시오. 단, 한 단어가 여러 번 등장하면 등장한 횟수만큼 모두 세어야 한다. 입력 첫 줄에 영어 대소문자와 띄어쓰기로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 띄어쓰기 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열의 .. 2020. 9. 6.