본문 바로가기

분류 전체보기127

함수 재호출 vs 호출 결과를 변수에 담기(백준 2941번 리뷰) while (str[i]) { if (is_it_croatia_alphabet(str, i)) { i += is_it_croatia_alphabet(str, i); cnt++; } else if (str[i] == '-' || str[i] == '=') { i++; } else { i++; cnt++; } } 이 코드에서는 is_it_croatia_alphabet이라는 함수를 총 두 번 호출하고 있다. chatGPT는 아래와 같이 바꾸면 더 효율적이라고 했다. int result; while (str[i]) { result = is_it_croatia_alphabet(str, i); if (result) { i += result; cnt++; } else if (str[i] == '-' || str[i].. 2023. 9. 18.
[C언어]백준 2941번 문제 https://www.acmicpc.net/problem/2941 2941번: 크로아티아 알파벳 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= www.acmicpc.net 내 풀이 #include intis_it_croatia_alphabet(char *str, int i) { if (str[i] == 'c' && str[i + 1] == '=') return (2); if (str[i] =='c' && str[i + 1] == '-') return (2); if (str[i] == 'd' && str[i + 1] == '.. 2023. 9. 12.
표정 다른 사람들이 나를 보았을 때 가장 먼저 보는 게 뭘까? 얼굴이다. 좀 더 정확히 이야기하자면 얼굴에서 드러나는 표정을 본다. 그래서 항상 웃는 얼굴을 하는 게 좋다는 이야기를 자주 들을 수 있다. 최근 같이 일하게 된 사람이 두 명 있는데 한 사람은 기본적으로 웃는 얼굴이고 다른 한 사람은 항상 뭔가 좀 안 좋아 보인다. 그래서 그런지는 몰라도 자꾸 웃는 얼굴을 하는 사람을 좀더 친근하게 대하고 그 사람과 이야기를 하려는 경향성이 나에게서 보인다. 웃는 얼굴이 중요하다 중요하다 말로만 들었지, 실제로 내 감정과 행동의 변화를 관찰해보니 마음 깊이 이 말에 공감하게 된다. 그렇다면 어떻게 해야 웃는 표정을 지을 수 있을까? 생활하는 내내 항상 입꼬리에 신경을 쓰고 있어야 할까? 웃음이 나올 수밖에 없는 .. 2023. 9. 12.
다트 클래스 사용법 기초 객체 지향 프로그래밍의 핵심 중 하나인 클래스를 사용하는 코드의 예시는 아래와 같으며 크게 4부분으로 나누어 살펴본다. import 'package:flutter/material.dart'; //1. Import문 class MyWidget extends StatelessWidget { //2. MyWidget 클래스 정의 @override Widget build(BuildContext context) { //3. build 매서드 정의 return Container( color: Colors.blue, child: Center( child: Text( 'Hello, Flutter!', style: TextStyle(fontSize: 24, color: Colors.white), ), ), ); } } .. 2023. 9. 6.
시작 오늘 너무 피곤해서 스타벅스 갈까말까 고민했는데 결국 왔다. 와보니 졸음이 어느정도 사라졌고 도서관에서 그렇게 하기 싫어했던 백준도 아주 재밌게 끝냈다. 시작하기 전에는 아무것도 모른다. 해봐야 안다. 2023. 9. 3.
다트 기초(C언어와의 차이점을 중심으로) 이 글은 제가 유일하게 아는 언어인 C언어와 구별되는 Dart의 특징적 개념만을 정리하였으므로 프로그래밍 자체가 처음이신 분들은 이해하기 어려울 수 있습니다. dynamic type vs var type 둘 다 데이터 타입을 명시적으로 지정하지 않고, 컴파일러가 할당된 값의 데이터 타입을 기반으로 타입을 추론하도록 한다. 이로써 코드를 간결하게 작성할 수 있는 장점이 있다. 그러나 var type으로 선언된 변수는 한 번 초기화했을 당시의 자료형만 계속 쓸 수 있다. var name = 12; // 위와 같이 integer로 초기화되어 있다면 // name이라는 변수에는 string이나 bool 같은 자료형의 데이터는 저장할 수 없다. name = 43; [O] name = 'string'; [X] na.. 2023. 9. 3.
설계 제품이나 서비스를 만들 때 MVP(Minimum Value Product)라는 개념이 있다. 한국말로는 최소 기능 제품이라는 뜻으로 많은 회사에서 사용하는 개념이다. 내가 설계를 할 때 모습을 보니 최소기능제품을 만들기보다는 완벽에 집착한다. 왜 완벽에 집착할까? 결국 실패해서 갈아엎는 게 스트레스받고 귀찮은 일이라고 생각해서다. 또한, 프로그램 설계라는 게 워낙 추상적인 영역이다 보니 완벽을 가늠하기 어려운 탓도 있을 것이다. 마치 지금 내가 투썸 케익관리 시스템을 만들 때 최소기능제품을 만들자고 강조하는 것처럼 평소의 내 설계에서도 최소기능제품을 만든다고 생각하자. 최소기능제품을 만들다 보면 아이디어가 떠오를 것이다. 냉전시대 잠수함 함장들의 필수템이 주사위였던 것처럼 나에게는 우연적 요소가 필요하다. 2023. 8. 14.
상상과 현실 지금 현재 실제로 일어나고 있는 일과 내 상상 속에서만 일어나고 있는 일만 잘 구분해도 좀 더 편하게 인생을 살 수 있다. 걱정은 상상에서 비롯된다. 2023. 8. 11.
원하는 것을 상대에게 얻는 법 - 데일 카네기의 인간관계론을 중심으로 제 1원칙: 내가 세상에서 가장 사랑하는 사람은 바로 '나' 인간은 누구나 존경받는 것을 좋아한다. 훈계를 받거나 야단을 받거나 자존심을 짓밟힌다면 그 사람은 진심으로 마음을 바꿀까 아니면 앙심을 품을까 제 2원칙 : 비판은 당신을 죽이고 칭찬은 당신을 살린다 그렇다면 타인이 잘못된 행동을 할 때는 어떻게 해야 하지? 그냥 참고만 있어야 하나? 제3원칙 : 물건을 팔지 말고, 사게 만들어라 살은 빼는 게 아니라 빠지는 것이다. 해야 하는 일을 하게 만드는 방법은 그 일을 할 수 밖에 없도록 만드는 것이다. 누군가를 설득하려면 원하는 것을 주어야 한다. 송아지를 축사로 어떻게 집어넣을 수 있을까? 머리를 잡고 끌어당기지 말고 꼬리를 잡아당겨라. 아니면 엄지손가락을 입에 넣어 쪽쪽 빨도록 정신팔리게 하자. .. 2023. 8. 11.
해야 될 것과 하지 말아야 될 것 요즘은 뭔가를 얻는 방법은 그게 무엇이 됐든 간단하다고 느껴진다. 건강을 원한다면 술담배 안하고 잘 먹고 잘 자고 스트레스 안 받고 살면 되고 공부를 잘하고 싶으면 하루에 실질적으로 집중하는 시간을 최대한 늘리면 된다. 사실 누가 듣더라도 코웃음칠 당연한 이야기들이다. 그런데 생각해보자. 사람들이 실제로 하던가? 술담배 하지 말라고 그렇게 떠들어도 결국 하는 사람들이 천지에 널려있다. 공부를 잘하고 싶지만 정작 오늘 하루는 스마트폰으로 시간 때우는 사람들도 널려있다. 해야 될 건 안 하고 안 해도 될 것들은 열심히 한다. 그래서 안 된다. 최근 나의 불면증을 생각해보자. 입에 붙이는 수면테이프를 통해서 입면에 일단 성공했을 시 질은 비약적으로 올라갔지만, 여전히 잠에 빠져드는 게 너무 어렵다. 최소 새벽.. 2023. 8. 2.