본문 바로가기

전체207

[C++] 문자열 substr와 코딩 테스트에서의 활용 앞서 글에서 C++에서 특정 문자를 기준으로 문자열을 자르는 방법에 대해 다루었습니다 (링크). 문자열은 코딩 테스트에서 주요한 카테고리 중 하나로, 그 예시로 카카오 공채 기출문제를 보면 문자열을 다루는 문제들이 많이 나옵니다. 문자열 압축, 괄호 변환, 가사 검색 이번에는 C++의 substr 함수에 대해 다루어 보려고 합니다. C++ 공식 문서에는 다음과 같이 적혀 있습니다: 현재 문자열의 부분 문자열을 기준으로 새로운 문자열을 생성 및 초기화하고 이를 반환한다. string 변수형의 test 라는 변수가 있고, 내용은 "We study coding test.". 라고 합시다. (string test = "We study coding test.";) test.substr(인자 1, 인자 2) 와 같.. 2021. 4. 11.
[C++] 코딩 테스트에서 편하게 사용할 수 있는 문자열 자르기 저는 코딩 테스트에서 주로 C++을 사용합니다 (정말 가끔 Python도 사용하긴 합니다). 대학에서 1학년때부터 쭉 커리큘럼 상 C++이 중심이 되기도 했고 (객체지향프로그래밍, 자료구조, 알고리즘이 C++에 기반하였습니다), 이미 많이 익숙해져 있기 때문입니다. 보통 비전공자 출신이시거나 코테를 처음 준비하신다고 생각하면 저는 Python을 추천드립니다. 문법 익히는 난이도도 훨씬 쉽고, 문자열을 다루거나 각종 변수를 다루기에 훨씬 간단하며 작성하는 코드의 길이도 훨씬 짧습니다. 반대로 전공자라면, 저는 Python 이전에 C 혹은 C++를 먼저 공부해야 한다고 생각합니다. 컴퓨터과학 전공자 입장에서 C를 모른다는 것은 많은 부분을 이해할 수 없다는 말이 됩니다 (임베디드, 포인터, 메모리 주소 개념.. 2021. 3. 24.
[백준 13460번] 구슬 탈출 2 난이도: 골드 2 문제 링크: www.acmicpc.net/problem/13460 출처: 삼성 SW역량 테스트 13460번: 구슬 탈출 2 첫 번째 줄에는 보드의 세로, 가로 크기를 의미하는 두 정수 N, M (3 ≤ N, M ≤ 10)이 주어진다. 다음 N개의 줄에 보드의 모양을 나타내는 길이 M의 문자열이 주어진다. 이 문자열은 '.', '#', 'O', 'R', 'B' www.acmicpc.net 앞서 다룬 2048 (easy) 와 유사한 성격의 문제입니다. 대략 위처럼 생긴 장난감이 있는 상황입니다. 단, 테두리는 전부 벽으로 막혀 있고, 위 사진과는 다르게 탈출구는 특정 위치의 바닥에 뚫려 있습니다. 또, 구슬이 파란색과 빨간색 두 개가 있는데, 파란색을 빼지 않고 빨간색을 빼야 성공입니다. .. 2021. 3. 24.
[백준 12100번] 2048 (easy) 난이도: 골드 2 문제 링크: www.acmicpc.net/problem/12100 출처: 삼성 SW역량 테스트 12100번: 2048 (Easy) 첫째 줄에 보드의 크기 N (1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 게임판의 초기 상태가 주어진다. 0은 빈 칸을 나타내며, 이외의 값은 모두 블록을 나타낸다. 블록에 쓰여 있는 수는 2 www.acmicpc.net 문제 설명이 긴 편이므로, 위 링크에서 직접 읽어 보시는 것을 추천드립니다. 잘 알려진 2048이라는 게임을 부분적으로 구현한 후, 최대 5번 움직을 때 얻을 수 있는 가장 큰 값을 출력하는 문제입니다. '움직임' 이라고 함은 상하좌우 네 방향으로 숫자들을 이동시키는 것을 말하며, 이 때 이동하는 방향 중 값이 같고 아직 합.. 2021. 3. 24.
HTML (1) 생활코딩의 HTML 강의를 따라가며 공부한 것을 정리한 글입니다. 링크: opentutorials.org/course/3084 WEB1 - HTML & Internet - 생활코딩 --- 우리는 지금부터 코딩 웹 인터넷 컴퓨터라는 거대한 주제에 대한 탐험을 시작할 거예요. 이 여행을 시작하기에 앞서서 한가지 준비가 필요한데요. 바로 우리들의 상상력입니다. 지금부터 여 opentutorials.org 웹에 대해 한 번도 공부한 적이 없어서 막연하게만 알고 있었는데, 웹 쪽으로 커리어를 쌓겠다는 생각은 없어도 어떤 식으로 작성되고 동작하는지 알고 싶어서 맛만 보려고 공부를 시작했습니다. 공부한 내용을 설명하는 느낌으로 적어 보겠습니다. 환경: MacOS, Atom 1. 태그 (tag) 다음과 같은 글이 있습.. 2021. 3. 12.
[백준 15401번] 퇴사 난이도: 실버 4 문제 링크: www.acmicpc.net/problem/14501 출처: 삼성전자 SW 역량 테스트 14501번: 퇴사 첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다. www.acmicpc.net 다이나믹 프로그래밍을 이용하는 문제입니다. 지금까지 누적 얻은 이익을 매번 다시 계산하지 않고, 이전에 계산해서 저장해 놨던 값을 꺼내어 이용하면 됩니다. 이런 문제는 뒤에서부터 접근하면 보다 쉽게 풀 수 있습니다. 위 사진에 있는 예시를 기준으로 설명하겠습니다. N+1일 후에 퇴사를 합니다. 따라서 N일까지 일할 수 있는지 여부를 우선 체크해야 합니다. 주의할 점은 7일차에 하루가 걸리는 상담을 할 경우 7 + 1 = 8이지만, 상담을 할 수 있다는 점입니다. 따라서 x일차 + y일.. 2021. 3. 11.