본문 바로가기

프로그래밍/백준 문제풀이3

백준 1259번 팰린드롬수 C++ 문제풀이 1~99999 사이의 숫자가 주어지고, 앞뒤가 똑같은 번호라면 팰린드롬수라 하고 입력받을 시 yes, 이외에는 no를 출력하는 코드를 짜면 된다. 나는 간편하게 바로 string 형으로 받고 맨 앞과 맨 뒤부터 시작해 한 칸씩 좁혀가며 문자가 일치하는지 검수해줬다. 물론 앞의 절반과 뒤의 절반을 짝지어서 자릿수/2 번으로 검수 횟수를 줄일 수 있겠지만, 사소하게 조정하기 귀찮아서 모든 자리에 대해 2번씩 검수되고 있다. 그러나 이정도 규모의 문제라면 유의미한 차이가 없어보여서 그냥 했다. 주의해야 할 점은 string형 변수 string str = 12345 이라고 한다면 맨 앞 문자는 1이지만, string 의 특성상 맨 뒷 문자는 \0 인 것을 생각해서 맨 앞과 맨 뒤 숫자는 str[0] 과 str[.. 2024. 1. 28.
백준 1181번 단어 정렬 C++ 문제 풀이 알파벳 소문자로 단어들이 주어지고, 1. 길이가 짧은 순, 2. 길이가 같다면 사전 순으로 정렬하는 문제입니다. 하지만 이어서 단, 중복된 단어는 하나만 남기고 제거해야 한다 라고 별로 안중요한 사소한 조건인것 처럼 세번째 조건을 달아둔게 열받네요. 처음 읽어보고는 파이썬 친화적인 문제라고 느껴졌고, C나 C++로 풀면 어렵지 않으려나 싶었습니다. 그래서 더욱 C++로 풀어봤습니다. 링크드리스트나 벡터 등등 고급스러운 자료구조들을 다룰 줄 알면 더욱 쉽게 풀 수 있을 것 같습니다. 다만 아직 잘 다루지 못해서 그냥 배열로 구현했습니다. 제가 접근한 방식은, 주어진 단어들을 알파벳 갯수별로 묶어서 짱박아두고, 전부 입력받으면 나중에 사전 순 정렬해서 출력하기로 했습니다. 입력받을 단어들이 들어갈 arr[5.. 2024. 1. 20.
백준 1018번 체스판 다시 칠하기 C++ 문제풀이 블로그가 있는지 까먹어갈즈음 학교를 졸업하고 백수가 되었네요 프로그래밍 언어나 알고리즘적인 부분에서 많이 약해서 백준 문제풀이를 다시 시작해보려 하는데, 예전에도 그렇고 문제를 풀어갈 때마다, 알고리즘과 자료구조 등 실력적인 부분이 늘어간다기 보다는 이렇게 해도 되나? 싶은 잔머리만 늘어나는 것 같네요. 어쨌든 원하는 결과를 뽑았으니 만족입니다. 저도 많이 부족하고 설명도 잘 못하기 때문에, 주석으로 설명이 되어있는 경우 코드적인 부분에서의 자세한 설명은 생략하고 접근한 아이디어만 간략히 소개해 드리겠습니다. +예전에 풀었던 문제들은 나중에 천천히 올리도록 하겠습니다. /////// 1018번 문제는 체스판 다시 칠하기 문제로, 최대 50by50 배열에서 임의의 8by8 배열을 선택해서 요구조건을 충족하.. 2024. 1. 20.