전체 글

· PS/BOJ
[Silver II] 화학식량 - 2257 문제 링크 성능 요약 메모리: 69104 KB, 시간: 8 ms 분류 자료 구조, 스택, 문자열 제출 일자 2023년 12월 25일 23:17:40 문제 설명 우리가 널리 사용하는 H2O(물), CH3COOH(아세트산)과 같은 화학식은 알파벳과 숫자, 그리고 괄호로 구성된다. 먼저 알파벳은 원자를 나타내는 것으로 H는 수소(Hydrogen), C는 탄소(Carbon), O는 산소(Oxygen) 원자를 뜻한다. 또한 원자를 나타내는 알파벳 뒤에 따르는 숫자는 그 원자가 몇 개 포함되어 있는지를 뜻한다. 따라서 COOHHH 분자는 CO2H3로 나타낼 수 있다. 이 문제에서, 숫자는 항상 2 이상 9 이하로만 입력으로 주어진다. 따라서 CO23과 같이 숫자가 두자리인..
· PS/BOJ
[Silver III] 천재 수학자 성필 - 15815 문제 링크 성능 요약 메모리: 69104 KB, 시간: 8 ms 분류 자료 구조, 스택 제출 일자 2023년 12월 28일 09:12:55 문제 설명 평행 세계의 성필은 숫자와 연산자를 만든 당대 최고의 수학자이다. 그리고 놀랍게도 이 숫자와 연산자는 현재 우리가 사용하는 것과 같다. 하지만 수식은 연산자가 피연산자 가운데 위치하는 우리와는 다르게 연산자가 피연산자 뒤에 위치한다고 한다. 우리 세계의 식을 성필의 식으로 바꾸는 방법을 간단히 설명하자면 이렇다. 우선 주어진 식을 연산자의 우선순위에 따라 괄호로 묶어준다. 그런 다음에 괄호 안의 연산자를 괄호의 오른쪽으로 옮겨주면 된다. 예를 들어 a+b*c는 (a+(b*c))의 식과 같게 된다. 그다..
· PS/BOJ
[Silver I] 외계인의 기타 연주 - 2841 문제 링크 성능 요약 메모리: 73016 KB, 시간: 612 ms 분류 자료 구조, 스택 제출 일자 2023년 12월 28일 10:50:30 문제 설명 상근이의 상상의 친구 외계인은 손가락을 수십억개 가지고 있다. 어느 날 외계인은 기타가 치고 싶었고, 인터넷에서 간단한 멜로디를 검색했다. 이제 이 기타를 치려고 한다. 보통 기타는 1번 줄부터 6번 줄까지 총 6개의 줄이 있고, 각 줄은 P개의 프렛으로 나누어져 있다. 프렛의 번호도 1번부터 P번까지 나누어져 있다. 멜로디는 음의 연속이고, 각 음은 줄에서 해당하는 프렛을 누르고 줄을 튕기면 연주할 수 있다. 예를 들면, 4번 줄의 8번 프렛을 누르고 튕길 수 있다. 만약, 어떤 줄의 프렛을 여러 개..
· Swift
,(콤마)와 &&(앰퍼샌드) 스위프트 문법을 공부를 하다보면 if문에서 ,(콤마)를 사용하는 경우도 있고 &&(앰퍼샌드)를 사용하는 경우도 있었습니다. 하지만 이 둘의 차이점에 대해 몰랐었기 때문에, 이번 기회에 이 둘의 차이점을 알아보고자 합니다. && 우선 &&에 대해 알아보겠습니다. &&는 논리 연산자로, 여러 개의 boolean expression을 하나의 boolean expression으로 연산해줍니다. 예를 들어 true인 boolean A와 false인 boolean B가 있을 때, A && B는 두 개가 모두 참이어야 true가 되고, 그렇지 않으면 false를 반환합니다. 즉, 두 개(A와 B)의 boolean expression을 하나(false)의 boolean expression으..
· PS/BOJ
[Gold IV] 문자열 폭발 - 9935 문제 링크 성능 요약 메모리: 94712 KB, 시간: 396 ms 분류 자료 구조, 스택, 문자열 제출 일자 2023년 6월 19일 08:52:36 문제 설명 상근이는 문자열에 폭발 문자열을 심어 놓았다. 폭발 문자열이 폭발하면 그 문자는 문자열에서 사라지며, 남은 문자열은 합쳐지게 된다. 폭발은 다음과 같은 과정으로 진행된다. 문자열이 폭발 문자열을 포함하고 있는 경우에, 모든 폭발 문자열이 폭발하게 된다. 남은 문자열을 순서대로 이어 붙여 새로운 문자열을 만든다. 새로 생긴 문자열에 폭발 문자열이 포함되어 있을 수도 있다. 폭발은 폭발 문자열이 문자열에 없을 때까지 계속된다. 상근이는 모든 폭발이 끝난 후에 어떤 문자열이 남는지 구해보려고 한다. 남아있는 ..
· iOS/UIKit
이번 글은 UIKit 프레임워크를 스토리보드를 사용하지 않는 코드 기반으로 세팅하는 방법에 대해 알아보겠습니다. 스토리보드와 코드 베이스에는 장단점이 존재합니다. 우선 스토리보드의 장점은 어노테이션이나 컴포넌트와 관련된 코드를 줄일 수 있어 로직에 더욱 집중할 수 있습니다. 뷰가 복잡해질 수록 관리할 코드가 줄어들기 때문에 관리하게 편해집니다. 또한 오토 레이아웃을 시각적으로 보여주어 오류를 쉽게 파악할 수 있습니다. 단점은 스토리보드는 xml 기반이기 때문에 다른 개발자가 확인하기에 어렵다는 문제점이 있습니다. 스토리보드를 수정하고 PR를 요청했을 때, 다른 개발자가 코드만을 보고 변화를 확인하기 어렵다는 단점이 있습니다. 또한 뷰에 컴포넌트가 추가되어 복잡해질수록 파일이 무거워진다는 단점도 있습니다...
· 기타
이번 글은 깃허브와 디스코드를 연결하여 디스코드에서 깃허브에 대한 알림을 받을 수 있는 '웹후크'에 대해 작성하고자 합니다. 웹후크를 설정하면 이슈를 생성하거나, PR을 요청했을 때 디스코드에서 알림이 가기 때문에 협업을 진행할 때에 매우 유용합니다. 이제 연동 과정에 대해 설명하겠습니다. 만약 해당 서버의 관리자가 아니라면, 관리자로부터 웹훅 권한을 얻은 뒤에 진행하실 수 있으니 참고하시길 바랍니다. 웹후크 연동하기 1. 해당 서버를 우클릭 -> [서버 설정] -> '앱'의 [연동] -> [웹후크 만들기]를 선택해줍니다. 2. 웹후크 URL 복사를 클릭하여 URL을 복사해줍니다. 3. 웹후크를 연결하고자 하는 깃허브의 레포지토리에서 [Settings] -> [Webhooks] -> [Add webhoo..
· iOS
이번 글은 SwiftLint를 적용하는 방법에 대해 알아보도록 하겠습니다. SwiftLint란 SwiftLint란 스위프트 스타일 및 컨벤션을 강제하기 위한 도구로, Kodeco 스위프트 스타일 가이드에 대략적인 기반을 두고 있습니다. 협업을 진행할 때, 컨벤션을 정하고 이를 준수하기 위해 코드 리뷰 등을 진행하지만, 컨벤션에 맞지 않는 경우가 생길 수 있습니다. 이러한 경우를 위해 SwiftLint를 사용하면, 컨벤션에 맞지 않는 부분을 알려주기 때문에 컨벤션을 지키는데 도움을 줍니다. SwiftLint 사용하기 1. SwiftLint 설치하기 우선 SwiftLint를 사용하기 위해선 SwiftLint를 설치해주어야 합니다. brew로 설치할 수도 있고, cocoapods로 프로젝트 자체에 추가해서 사..
Dev_Ted
프로그래밍 성장기