$ sed 's/asdf/qwer/g' a.txt
qwerqwerqwerqwerqwer...(생략)

위의 커맨드처럼 sed를 파일에 대해 그냥 사용하면 결과가 다시 파일에 써지는 것이 아니라, stdout으로 출력된다 -_-
그래서 "아! 리다이렉션을 사용하면 되겠구나" 하고 다음 커맨드를 입력하면(절대 안됩니다 절대)..

 시도: $ sed 's/asdf/qwer/g' a.txt > a.txt

 결과: $ ls -l
        -rw-rw-r--. 1 kcy1019 kcy1019 0  2월  2 12:12

절대 하면 안됩니다... 절대로..
이럴 땐 그냥 아래처럼 하면 여러모로 안전하고 편리하게 할 수 있습니다.

$ sed -i.bak 's/asdf/qwer/g' a.txt
$ ls -l
-rw-rw-r--. 1 kcy1019 kcy1019 100  2월  2 12:12 a.txt
-rw-rw-r--. 1 kcy1019 kcy1019 100  2월  2 12:12 a.txt.bak

참고: http://stackoverflow.com/questions/5171901/sed-command-find-and-replace-in-file-and-overwrite-file-doesnt-work-it-empties

전형적인 Dynamic Programming 문제... 라고 생각했는데,

사실 DP부분은 너무 간단한거라(전형적인 2차원) 아무 생각 없이 제출했다가 틀렸다.

내가 실수한 부분은 정렬 순서를 잘못 생각한 것이었는데,

다음 중 옳은 접근은 어떤 것일까?

1. 각 선분(구름)을 오른쪽 끝 좌표 기준으로(같을 경우 왼쪽 끝을 기준, 오름차순) 오름차순 정렬한다.

2. 각 선분(구름)을 왼쪽 끝 좌표 기준으로(같을 경우 오른쪽 끝을 기준, 오름차순) 오름차순 정렬한다. 

DP부분은 정말정말 쉽지만 그래도 모른다면...



Fedora의 경우에는 sudo yum install apache 로 apache를 설치했더라도 firewall 설정이 자동으로 업데이트되지는 않기때문에 다음과 같이 수동으로 방화벽 설정을 바꿔주어야 한다:

sudo firewall-cmd --add-service=http
sudo firewall-cmd --permanent --add-service=http

PHP를 쓰다보면 가끔 chmod -R 777 . 을 해도, 심지어 chown -R apache:apache . 를 해도 PHP가 파일을 쓰지 못하는 경우가 있는데(i.e. is_writable(".") returns False), 이럴땐 sudo setenforce 0을 통해 SELinux를 그냥 꺼버려도 쓸 수는 있지만.. 그건 좋은 방법이 아니니 다음과 같이 해당 디렉토리를 SELinux 옵션을 통해 httpd가 읽고 쓸 수 있도록 하면 된다.

sudo chcon -R -h -t httpd_sys_rw_content_t .

mysql이 아무 이유를 말해주지 않고 시작되지 않는다면 하드가 꽉찼는지부터 확인해보자.

df -h /

원래 정규식이 한글을 지원한다면 한글의 범위는 [가-힣](또는 [\uac00-\ud7a3])으로 표현돼야 할 텐데..

VIM에서는 기본적으로 이게 안된다는 것 같다.

그래서 여길 참고해서 https://kldp.org/node/101253 어떻게든 대충 해결하긴 했다.

ASCII의 범위가 \x00 - \xff 니까, 한글은 여기에 속하지 않을 것이다.

따라서 :%s/\([^\x00-\xff]\)[ ]/\1\r/g 와 같이 사용하면 된다.

Sub go()

Dim i As Integer

    For i = 1 To 500

        If Cells(i, 2) = "" Or Cells(i, 2) = "거래일자" Then

            Rows(i).Select

            Cells(i, 1).Select

            Selection.EntireRow.Delete

        End If

    Next i

End Sub

대학 오기 전에는 VB6이 주력언어..라기보단 유일하게 할 줄 아는 언어였는데 이젠 다 까먹어간다..ㅠㅠ
은행 거래기록을 xls로 다운로드했는데 자꾸 헤더가 반복되어서 보기 힘들길래 오랜만에 VB코딩.

250: 그냥 4000 * N번 돌리면 되는 말도안되게 쉬운 문제. DIV2인줄...

450: 나는 Dijkstra 한번 돌려서 Shortest Path의 edge만 남겨서 DAG를 만든 다음 위상정렬하면서 DP를 채웠는데(답이 -1인경우는 이 DAG에 가중치 0인게 있는 경우 뿐), 알고보니 그냥 Dijkstra 하면서 DP배열을 같이 채우면 되는거였다.

1000: 모르겠다 ㅎㅎ

Q) How to use SIGALRM under 1sec?

A) Use ualarm() instead of alarm().

ualarm(useconds_t useconds, useconds_t interval);

--> useconds(단위: microsecond)만큼 지난 뒤 SIGALRM 발생.
      interval이 0이 아니라면 interval(단위는 같음)마다 SIGALRM 발생.

Reference: http://pubs.opengroup.org/onlinepubs/009695399/functions/ualarm.html

'Computer' 카테고리의 다른 글

Excel Macro - Row Removal  (0) 2014.10.27
[연습]SRM 624 Div1  (0) 2014.09.04
DFS / BFS 한 단계씩 보여주는 미로찾기(Linux용)  (0) 2014.08.02
Difference between .so and .dll files.  (0) 2014.08.01
SIC/XE Machine Simulator  (0) 2014.05.26

친구들 + icpc 신입생들에게 dfs와 bfs를 가르쳐주기 위해서

미로를 만드는 프로그램과 미로를 풀어주는 프로그램을 만들었다.

특히 미로를 풀어주는 프로그램은 알고리즘의 진행단계를 하나씩 보여주도록 만들었다!

쉬운 코딩이지만 오랜만에 유용한 코딩인 것 같아서 포스팅!

코드 : https://github.com/kcy1019/Maze




'Computer' 카테고리의 다른 글

[연습]SRM 624 Div1  (0) 2014.09.04
Signal Alarm을 1초보다 빠르게 사용하고 싶을 때.  (0) 2014.08.02
Difference between .so and .dll files.  (0) 2014.08.01
SIC/XE Machine Simulator  (0) 2014.05.26
서시(서C)  (0) 2014.05.25